【发布时间】:2020-04-18 04:38:55
【问题描述】:
我们有行级多租户数据库。以前的应用程序是使用带有 DataContext 类的 EF 开发的,我们设法创建该类的范围以在全局级别进行过滤,如
public EFDbContext(int tenantID = 0) : base("name=WMSEntities") //Constructor of the class always expect a tenantID
{
//tenantID = int.Parse(System.Security.Claims.ClaimsPrincipal.Current.FindFirst("tenantid").Value);
//Here, the Dbset can expose the unfiltered data
Tenants = new FilteredDbSet<Tenant>(this);
//From here, add all the multitenant dbsets with filtered data
Items = new FilteredDbSet<Item>(this, d => d.TenantID == tenantID);
}
但是这个特定的应用程序正在使用 DBML、LINQ to SQL,其中继承的 DbContext 类不起作用。这里的大多数示例都是基于 EF 而不是 LINQ To SQL。
了解如何使用 LINQ To SQL 来实现这一点,或者我最好更改这个 EF?
【问题讨论】:
-
迁移到 EF 总是更好。 LINQ to SQL 是一条死胡同。
标签: c# asp.net-mvc entity-framework linq