Yi.Framework.Net6/Yi.Framework.Repository/Repository.cs
(开头部分) 8KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using SqlSugar;
using System.Data;
using System.Linq.Expressions;
using Yi.Framework.Common.Attribute;
using Yi.Framework.Common.Models;
using Yi.Framework.Model.Models;
using Yi.Framework.Model.Query;
/***这里面写的代码不会给覆盖,如果要重新生成请删除 Repository.cs ***/
namespace Yi.Framework.Repository
{
/// <summary>
/// 仓储模式
/// </summary>
/// <typeparam name="T"></typeparam>
[AppService]
public class Repository<T> : SimpleClient<T>, IRepository<T> where T : class, new()
{
public ISugarQueryable<T> _DbQueryable { get { return base.Context.Queryable<T>(); } set { } }
public ISqlSugarClient _Db { get { return base.Context; } set { } }
/// <summary>
/// 构造函数
/// </summary>
/// <param name="context"></param>
public Repository(ISqlSugarClient context) : base(context)//注意这里要有默认值等于null
{
////开始Saas分库!
////单个公共基础库+多个租户业务库
////1:先判断操作对应实体上是否存在租户特性,如果存在说明是公共库
//var anyTenant = typeof(T).GetCustomAttributes(false).Any(a => a.GetType().Equals(typeof(TenantAttribute)));
////如果是公共库,直接使用默认库即可
//if (anyTenant)
//{
// base.Context = _Db.AsTenant().GetConnectionScope("0");
//}
////如果不是公共库
//else
//{
// //2:根据上下文对象获取用户的租户id、数据库连接串及用户信息
// string tenantId = "获取用户的租户id";
// string connection = "获取用户信息中的数据库连接字符串";
// //如果该租户未添加到db对象中
// if (!_Db.AsTenant().IsAnyConnection(tenantId))
// {
// //添加业务库只在当前上下文有效
// _Db.AsTenant().AddConnection(new ConnectionConfig()
// {
// ConfigId = tenantId,
// ConnectionString = connection,
// //数据库类型同样可以动态配置
// DbType = SqlSugar.DbType.MySql,
// IsAutoCloseConnection = true
// });
// }
// //3:根据租户id获取到对应db对象,替换仓储中的db对象即可
后面还有 169 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。
