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里维护!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2014-08-05 Azure 负载均衡和可用性集
2014-08-05 windows Azure 域名绑定