2017-02-16 20 views
0

お互いに多対多の関係を持つ2つのテーブルUserRole_LKPがあります。 Userでは、私が持っている:LINQの相互参照テーブルの名前を変更します。

public virtual ICollection<Role_LKP> Roles { get; set; } 

そしてRole_LKPで、私が持っている:LINQはdbo.UserRole_LKPにアクセスしようとしたが、私はUser_Role_XREFを持っているデータベースで

public virtual ICollection<User> Users { get; set; } 

を。私はこのテーブルの名前を変更することはできません。 User_Role_XREFのエンティティを作成せずにXREFテーブルの名前をLINQに伝えることは可能ですか?

答えて

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"); 
     }); 
} 
関連する問題