随笔 - 435  文章 - 0  评论 - 110  阅读 - 62万 

XXXHttpApiHostModule 里面默认启用多租户

复制代码
        public override void OnApplicationInitialization(ApplicationInitializationContext context)
        {
            var app = context.GetApplicationBuilder();

            。。。

            if (MultiTenancyConsts.IsEnabled)
            {
                app.UseMultiTenancy();
            }
复制代码

 

增加多租户很简单,domain类里实现IMultiTenant接口就可以了

1
Customer : FullAuditedAggregateRoot<Guid>, IMultiTenant

 在浏览器标头可以看到

 

复制代码
        public async Task<List<Customer>> GetListAsync(int maxResultCount = 10, int skipCount = 0,
            string filter=null)
        {


        return await (await GetDbSetAsync())
                .WhereIf(!filter.IsNullOrWhiteSpace(),
                x => x.Name.Contains(filter))
                .OrderByDescending(e => e.CreationTime)
                .PageBy(skipCount, maxResultCount)
                .ToListAsync();
        }
复制代码

不能这样写

        //unable to cast object of type
        //'microsoft.entityframeworkcore.query.internal.entityqueryable`1[fox.erp.domain.customer]'
        //to type 'microsoft.entityframeworkcore.dbset`
.WhereIf(!filter.IsNullOrWhiteSpace(),
                (Customer x) => x.Name.Contains(filter))

 

不要在Domain 项目里的CustomerManager.cs里的UpdateAsync 加上TenantId字段,这个由系统维护!!!

也不需要在DTO里维护!!!

 

posted on   Gu  阅读(206)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2014-08-05 Azure 负载均衡和可用性集
2014-08-05 windows Azure 域名绑定
点击右上角即可分享
微信分享提示