2013-12-09 41 views
0

我有一個ASP.NET應用程序,其視圖試圖更新現有實體的標題,價格以及另一個布爾和字符串。我有一個簡單的Modifier_Categories和Modifiers關係。每個Modifier_Category可以有許多修飾符。修飾符是我試圖更新的實體。實體框架在嘗試插入相關實體時複製類

當我調用dbContext.SaveChanges()時,它會像我想要的那樣更新Modifier實體,但由於某種原因重複並插入其相關的Modifier_Category實體。

在我的函數中沒有任何地方可以找到任何實例化相關Modifier_Category的新實例並使用dbContext.Modifier_Category.AddObject()插入它的地方;

有什麼方法可以確定上下文何時獲取新的實體?在沒有我的情況下添加實體的方式如何添加?

+0

發表您的視圖和控制器代碼 – Maess

+0

爲什麼實體框架重新插入現有的對象到我的數據庫? msdn.microsoft.com/en-us/magazine/dn166926.aspx – Colin

回答

0

如果您使用MVC,可能會發生一些模型綁定,即創建該Modifier_Category實體並將其附加到您的Modifier模型。找不到真正的好方法,除非您直到找到它,然後逐步完成代碼。您需要查找Modifier模型添加了Modifier_Category對象的任何情況,而不僅僅是要將該Modifier_Category對象添加到上下文中,因爲當您添加/附加該Modifier實體時,它將嘗試添加/附加任何相關的對象添加到該模型*。

*所提供的對象沒有被標記爲不回映射到數據庫