の PK 以外の列を使用している場合、両側にナビゲーション プロパティを設定することはできませんTABLE_B
。
public class TABLE_A
{
public virtual long Id {get; set;}
}
public class TABLE_B
{
public virtual long Id {get; set;}
....
public virutal TABLE_A MyTableARef {get; set;}
}
public class MyContext : DbContext
{
public DbSet<TABLE_A> As { get; set; }
public DbSet<TABLE_B> Bs { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<TABLE_B>()
.HasRequired(b => b.MyTableARef)
.WithMany()
.Map(b => b.MapKey("FK_Column_name));
}
}
の PK がTABLE_B
FK でもある場合はTABLE_A
、両側でナビゲーション プロパティを使用して共有 PK マッピングを使用できます。
編集:
次のように共有 PK マッピングを使用できます。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<TABLE_B>()
.HasRequired(b => b.MyTableARef)
.WithOptional(a => a.MyTableBRef);
}
Id
ofは へのTABLE_B
FK でもありTABLE_A
ます。