时,ObjectStateManager中已存在具有相同关键字的对象,因此我之前发布了一个问题,但未收到太多反馈。可能是我解释错了。当你的知识有限时,很难问正确的问题。总而言之,我有三个EF实体:Books,Pages和Content - 书中有许多页面,一页只有一个内容。EF - 在将现有实体添加到关联
我已经有内容条目,我不需要创建它们,只是在我的Page实体中引用它们。所以我想要做的是这样的:
//Add a new Book
var myBook = new Book();
//Add a new page
var myPage = new Page();
//I'm selecting this one from an asp.net dropdown box
var myContent = contentService.get(id);
//Connect the page and content
myPage.Content = myContent;
//Add a page to the book
myBook.Pages.Add(myPage)
当我添加的第一页,一切都很好,但是当我尝试将第二个添加到我的书,我得到一个异常。如果我将myContent分配给导航属性(myPage.Content = myContent)的行注释掉,则错误消失。
最大的问题是......如何在页面引用已存在的数据库条目时,如何添加一个有2页或更多页的新书(数据库中有2个新条目)?
您是否试图在同一个过程中添加第二个页面?或者我的页面已经存在于数据库中,并且您尝试添加第二页? – Silagy 2013-03-16 09:00:49
此时没有任何内容保存在数据库中。数据库只包含内容条目。我想要做的是创建一本新书,然后创建一个新页面(数据库中已经存在的内容),另一个,另一个...一旦我完成了,我想保存一个新的书(数据库条目)及其所有页面(包含FK到内容的数量的数据库条目) – esper 2013-03-16 09:06:48
在'页面'的关系中,2页可以引用相同的内容吗?这就是问题在这里的样子(除非在每次调用中将“Id”更改为其他内容)。 – James 2013-03-16 09:31:22