C# 更改LINQ中交叉引用表的名称
我有两个相互之间有多对多关系的表,C# 更改LINQ中交叉引用表的名称,c#,entity-framework,linq,linq-to-sql,C#,Entity Framework,Linq,Linq To Sql,我有两个相互之间有多对多关系的表,User和Role\u LKP。在User中,我有: public virtual ICollection<Role_LKP> Roles { get; set; } public virtual ICollection<User> Users { get; set; } 在数据库中,我有User\u Role\u XREF,但是LINQ试图访问dbo.UserRole\u LKP。我无法更改此表的名称;在不为用户角色创建实体的情况下
User
和Role\u LKP
。在User
中,我有:
public virtual ICollection<Role_LKP> Roles { get; set; }
public virtual ICollection<User> Users { get; set; }
在数据库中,我有
User\u Role\u XREF
,但是LINQ试图访问dbo.UserRole\u LKP
。我无法更改此表的名称;在不为用户角色创建实体的情况下,是否可以告诉LINQ外部参照表的名称?我可以从中看出这一点。基于这段代码,我认为您不太可能通过数据注释来实现这一点,因为数据注释会更干净,但您可以通过以下方式编辑上下文以达到预期效果:
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");
});
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilding.Entity()
.HasMany(r=>r.Roles)
.具有多个用户(u=>u.Users)
.Map(ru=>
{
ru.ToTable(“用户角色外部参照”、“dbo”);
ru.MapLeftKey(“用户ID”);
ru.MapRightKey(“角色ID”);
});
}