私は既存のデータベースでEFコードファーストを使用しています。EFコード最初に関連するオブジェクトを返さない
2つのオブジェクト:
public Foo
{
public int FooId {get;set;}
}
public Bar
{
public int BarId {get;set;}
public virtual Foo Foo {get;set;}
}
FooId
とBarId
両方が、データベース内の主キーであり、Bar
テーブルがFoo
テーブルを指す外部キーであるカラムFooId
を有しています。
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");
}
}
コードを最初にマッピングすることもできますか? Include( "Foo")を使用してクエリを呼び出すとどうなりますか? –
I 'Include(" Foo ")を実行すると動作します。 – mattdwen