私は EF4 を使用する 2 つのメソッドを持っています。Book のプロパティの 1 つに FirstPage があります。これは、アイテムの最初のリストのアイテムです。このインスタンス化されたオブジェクトに FirstPage プロパティを設定しようとすると、例外が発生します。
2 つのオブジェクトが異なる ObjectContext オブジェクトに関連付けられているため、2 つのオブジェクト間の関係を定義できません。
これは、オブジェクトがデタッチされる前に using ブロックが破棄されたためだと思います。1)コンテキストが破棄された後にデタッチするか、2)データレイヤーに戻すまでゴーストコンテキストにアタッチする方法はありますか?
これは私のコードです:
IEnumerable<Page> allPages = null;
using (var db = new DataContainer())
{
var items = db.Pages;
var filteredCode = items.Where(i => i.Code == PageCode);
allPages = filteredCode.ToList();
}
Page page = allPages.FirstOrDefault(p => ...); // query omitted
var book = new Book()
{
Title = @"asdas",
FirstPage = page, // 'page' is never null
// rest omitted
};