私は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));