| | |
| | | ISqlSugarClient db = _dbBase; |
| | | |
| | | //å¤ç§æ· |
| | | var mta = typeof(TEntity).GetCustomAttribute<MultiTenantAttribute>(); |
| | | if (mta is { TenantType: TenantTypeEnum.Db }) |
| | | { |
| | | //è·åç§æ·ä¿¡æ¯ ç§æ·ä¿¡æ¯å¯ä»¥æåç¼å䏿¥ |
| | | if (App.User is { TenantId: > 0 }) |
| | | { |
| | | dynamic tenant = db.Queryable(MainDb.TenantTableName, "x").Where(MainDb.TenantId, "=", App.User.TenantId).First(); |
| | | if (tenant != null) |
| | | { |
| | | var iTenant = db.AsTenant(); |
| | | if (!iTenant.IsAnyConnection(tenant.TenantId)) |
| | | { |
| | | string conStr = tenant.ConnectionString; |
| | | ConnectionConfig connectionConfig = new ConnectionConfig() |
| | | { |
| | | ConfigId = tenant.TenantId, |
| | | ConnectionString = conStr.DecryptDES(AppSecret.DB), |
| | | DbType = (SqlSugar.DbType)tenant.DbType, |
| | | IsAutoCloseConnection = true, |
| | | AopEvents = new AopEvents() |
| | | { |
| | | DataExecuting = SqlSugarAop.DataExecuting, |
| | | //var mta = typeof(TEntity).GetCustomAttribute<MultiTenantAttribute>(); |
| | | //if (mta is { TenantType: TenantTypeEnum.Db }) |
| | | //{ |
| | | // //è·åç§æ·ä¿¡æ¯ ç§æ·ä¿¡æ¯å¯ä»¥æåç¼å䏿¥ |
| | | // if (App.User is { TenantId: > 0 }) |
| | | // { |
| | | // dynamic tenant = db.Queryable(MainDb.TenantTableName, "x").Where(MainDb.TenantId, "=", App.User.TenantId).First(); |
| | | // if (tenant != null) |
| | | // { |
| | | // var iTenant = db.AsTenant(); |
| | | // if (!iTenant.IsAnyConnection(tenant.TenantId)) |
| | | // { |
| | | // string conStr = tenant.ConnectionString; |
| | | // ConnectionConfig connectionConfig = new ConnectionConfig() |
| | | // { |
| | | // ConfigId = tenant.TenantId, |
| | | // ConnectionString = conStr.DecryptDES(AppSecret.DB), |
| | | // DbType = (SqlSugar.DbType)tenant.DbType, |
| | | // IsAutoCloseConnection = true, |
| | | // AopEvents = new AopEvents() |
| | | // { |
| | | // DataExecuting = SqlSugarAop.DataExecuting, |
| | | |
| | | } |
| | | }; |
| | | iTenant.AddConnection(connectionConfig); |
| | | } |
| | | // } |
| | | // }; |
| | | // iTenant.AddConnection(connectionConfig); |
| | | // } |
| | | |
| | | return iTenant.GetConnection(tenant.TenantId); |
| | | } |
| | | } |
| | | } |
| | | // return iTenant.GetConnection(tenant.TenantId); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | return db; |
| | | } |
| | |
| | | return insert.ExecuteReturnIdentity(); |
| | | } |
| | | |
| | | public virtual bool AddData<TChild>(TEntity entity, Expression<Func<TEntity, List<TChild>>> expression) where TChild : class, new() |
| | | { |
| | | return _db.InsertNav(entity).Include(expression).ExecuteCommand(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ·»å 夿¡æ°æ® |
| | | /// </summary> |