Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改LINQ中交叉引用表的名称_C#_Entity Framework_Linq_Linq To Sql - Fatal编程技术网

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”);
});
}