C# 多租户数据库中的EF关联表
我遇到了严重的EF限制,需要帮助 这是我的桌子: 表格:公司C# 多租户数据库中的EF关联表,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,我遇到了严重的EF限制,需要帮助 这是我的桌子: 表格:公司 租户内部PK 公司ID INT PK 其他栏目 表格:角色 租户内部PK RoleId INT PK 其他栏目 以下是关联表: 表格:公司简介 租户内部PK 公司ID INT PK RoleId INT PK 我遇到的这个问题是在我的mapping类中,我试图避免对关联表进行建模以保持简单,所有事情都在前面进行过,但我们在所有地方都添加了TenantId 这是公司的C#mapper代码: this.HasMany(t
- 租户内部PK
- 公司ID INT PK
- 其他栏目
- 租户内部PK
- RoleId INT PK
- 其他栏目
- 租户内部PK
- 公司ID INT PK
- RoleId INT PK
TenantId
这是公司的C#mapper代码
:
this.HasMany(t => t.ContactRoles)
.WithMany(t => t.Companies)
.Map(m =>
{
m.ToTable("CompanyContactRoles");
m.MapLeftKey("TenantId", "CompanyID");
m.MapRightKey("TenantId", "RoleID");
});
EF爆炸是因为我在多对多映射的两侧使用了TenantId
,错误如下:
在模型生成过程中检测到一个或多个验证错误:
租户名称:类型中的每个属性名称必须是唯一的。已定义属性名称“TenantId”。
EF不支持多列键控关联表吗?关联表中的TenantId用于2个关系,但似乎每个关系都需要一个专用的TenantId,这是不可能的,因为这些列必须存在于实际的表中。虽然我不熟悉这种情况,但您可能必须显式地提到表名,如
MapLeftKey(“CompanyRoles.TenantId”、“CompanyID”)
?嗯,@BobKaufman我从来没有尝试过……这不起作用,它会对未知列抛出SQL异常。