我有两个彼此具有多对多关系的表,User
和Role_LKP
。在User
,我有:
public virtual ICollection<Role_LKP> Roles { get; set; }
在Role_LKP
,我有:
public virtual ICollection<User> Users { get; set; }
在数据库中我有User_Role_XREF
但是LINQ尝试访问dbo.UserRole_LKP
。我无法更改此表的名称;是否有可能告诉LINQ XREF表的名称是什么而不为User_Role_XREF创建实体?
答案 0 :(得分:0)
我能够从a marginally related question中解决这个问题。根据这段代码,我认为你不太可能通过数据注释来做到这一点,这样会更清晰,但你可以通过以下方式编辑上下文以达到预期的效果:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilding.Entity<User>()
.HasMany(r => r.Roles)
.WithMany(u => u.Users)
.Map(ru =>
{
ru.ToTable("User_Role_XREF", "dbo");
ru.MapLeftKey("User_ID");
ru.MapRightKey("Role_ID");
});
}