既存のデータベースで EF Code First を使用しています。
2 つのオブジェクト:
public Foo
{
public int FooId {get;set;}
}
public Bar
{
public int BarId {get;set;}
public virtual Foo Foo {get;set;}
}
FooId
との両方BarId
がデータベースの主キーであり、テーブルにはテーブルを指す外部キーでBar
ある列があります。FooId
Foo
を選択するBar
とFoo
、null 参照になります。私は EF が自動的にそれらの 2 つをまとめたと思っていたでしょうが、おそらく何かが足りないのでしょうか?
データベース マッピング:
public class EFCodeFirst : DbContext
{
public EFCodeFirst()
{
this.Database.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["AlternateString"].ConnectionString;
}
public DBSet<Foo> Foos {get;set;}
public DBSet<Bar> Bars {get;set;}
protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder)
{
modelBuilder.IncludeMetadataInDatabase = false;
modelBuilder.Entity<Foo>().MapSingleType().ToTable("Foo");
modelBuilder.Entity<Bar>().MapSingleType().ToTable("Bar");
}
}