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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。