Browse Source

Update Core

pull/19/head
sunkaixuan 3 years ago
parent
commit
5f1e428c0b
  1. 10
      Src/Asp.NetCore2/SqlSugar/SqlSugarClient.cs
  2. 22
      Src/Asp.NetCore2/SqlSugar/SugarUnitOfWork.cs

10
Src/Asp.NetCore2/SqlSugar/SqlSugarClient.cs

@ -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;

22
Src/Asp.NetCore2/SqlSugar/SugarUnitOfWork.cs

@ -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;
}

Loading…
Cancel
Save