我有两种使用 EF4 的方法 - 一种在 using 块中返回对象列表(页面),另一种方法创建不同类型的对象(书)。Book 上的一个属性是 FirstPage,它是第一个项目列表中的一个项目。当我尝试在此实例化对象上设置 FirstPage 属性时,出现异常:
无法定义这两个对象之间的关系,因为它们附加到不同的 ObjectContext 对象。
我想这一定是因为 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
};