Entity Framework 5 に子オブジェクトの子オブジェクトを含める方法 質問する

Entity Framework 5 に子オブジェクトの子オブジェクトを含める方法 質問する

私はEntity Framework 5 code firstと を使用していますASP.NET MVC 3

子オブジェクトの子オブジェクトを作成するのに苦労しています。以下は私のクラスです。

アプリケーションクラス。

public class Application
{
     // Partial list of properties

     public virtual ICollection<Child> Children { get; set; }
}

子クラス:

public class Child
{
     // Partial list of properties

     public int ChildRelationshipTypeId { get; set; }

     public virtual ChildRelationshipType ChildRelationshipType { get; set; }
}

ChildRelationshipType クラス:

public class ChildRelationshipType
{
     public int Id { get; set; }

     public string Name { get; set; }
}

すべてのアプリケーションを返すリポジトリ内の GetAll メソッドの一部:

return DatabaseContext.Applications
     .Include("Children");

Child クラスには、ChildRelationshipType クラスへの参照が含まれています。アプリケーションの子を操作するには、次のようになります。

foreach (Child child in application.Children)
{
     string childName = child.ChildRelationshipType.Name;
}

ここで、オブジェクト コンテキストがすでに閉じられているというエラーが発生します。

ChildRelationshipType上記のように、各子オブジェクトにオブジェクトを含める必要があることを指定するにはどうすればよいですか?

ベストアンサー1

ライブラリを組み込むと、文字列の代わりにラムダ式を受け取るメソッドSystem.Data.Entityのオーバーロードを使用できます。その後、パスではなく Linq 式を使用して子をオーバーロードできます。Include()Select()string

return DatabaseContext.Applications
     .Include(a => a.Children.Select(c => c.ChildRelationshipType));

おすすめ記事