Update Core

This commit is contained in:
sunkaixuan
2022-05-24 01:37:30 +08:00
parent 4734e12912
commit 5f1e428c0b
2 changed files with 29 additions and 3 deletions

View File

@@ -87,7 +87,15 @@ namespace SqlSugar
foreach (var item in properies)
{
var value = Activator.CreateInstance(item.PropertyType);
value.GetType().GetProperty("Context").SetValue(value, this);
TenantAttribute tenantAttribute = item.PropertyType.GetGenericArguments()[0].GetCustomAttribute<TenantAttribute>();
if (tenantAttribute == null)
{
value.GetType().GetProperty("Context").SetValue(value, this);
}
else
{
value.GetType().GetProperty("Context").SetValue(value, this.GetConnection(tenantAttribute.configId));
}
item.SetValue(result, value);
}
return result;

View File

@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
@@ -29,13 +30,30 @@ namespace SqlSugar
public SimpleClient<T> GetRepository<T>() where T : class, new()
{
return new SimpleClient<T>(Db);
TenantAttribute tenantAttribute = typeof(T).GetCustomAttribute<TenantAttribute>();
if (tenantAttribute == null)
{
return new SimpleClient<T>(Db);
}
else
{
return new SimpleClient<T>(Db.AsTenant().GetConnection(tenantAttribute.configId));
}
}
public RepositoryType GetMyRepository<RepositoryType>() where RepositoryType : ISugarRepository, new()
{
var result = new RepositoryType();
result.Context = this.Db;
var type = typeof(RepositoryType).GetGenericArguments()[0];
TenantAttribute tenantAttribute = type.GetCustomAttribute<TenantAttribute>();
if (tenantAttribute == null)
{
result.Context = this.Db;
}
else
{
result.Context = this.Db.AsTenant().GetConnection(tenantAttribute.configId);
}
return result;
}