2017-02-16 26 views
0

У меня есть две таблицы, которые имеют отношение «многие ко многим», User и Role_LKP. В User, у меня есть:Изменить имя таблицы перекрестных ссылок в LINQ

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

Я смог выяснить это из 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"); 
     }); 
}