2010-07-22 60 views
4

我正在使用C#在ASP.NET MVC 2中創建一個網站。我設計了一幫有多對多的關係,類似於下表的數據庫:需要幫助使用實體的ASP.NET MVC 2框架

祖父母 - 多對多 - 家長

父 - 多對多 - 兒童

我使用實體框架來製作所有的實體類,並且現在正在處理存儲庫類中的一個函數,該函數添加了一個GrandParent。

它試圖創建子,將它添加到父,然後父添加到祖父母,然後通過使用命令

entities.GrandParents.AddObject(newGrandParent); 
entities.SaveChanges(); 

它崩潰的SaveChanges()符合加祖父母到數據庫錯誤:

Unable to update the EntitySet 'JunctionPartentsChilds' because it has a DefiningQuery and no element exists in the ModificationFunctionMapping element to support the current operation.

編輯: 我可以通過刪除所有DefiningQuery元素的自動生成的代碼修復的錯誤,現在我就應該是更具描述性的,但我在同一行收到一個錯誤仍然處於虧損狀態。

錯誤是:Invalid object name 'JunctionPartentsChilds'它會拋出一個UpdatingException。

任何想法發生了什麼問題?由於存在多對多的關係,您是否必須以特殊順序添加到數據庫中?

謝謝!

+4

聽起來像一個奇怪的數據庫架構。 *所有*你的桌子有*真實* PK和FK?你使用任何視圖或特效?您不應該使用適當的模式來獲取「DefiningQuery」。 – 2010-07-22 17:18:26

+0

請添加/詳細說明您的數據庫模式以及它們之間的關係。如果你的模式是正確的,那麼你添加的方式不正確。 在第一次猜測,似乎你是以錯誤的順序/方式添加對象。 – renegadeMind 2010-07-23 09:28:18

回答

0

您的描述看起來像一對多關係。但無論如何,請在此處張貼您的代碼片段,以查看您的陳述中是否有錯誤。 Bye Thomas P.S.療法是一種美妙的方式格式化這樣

This is a line of code 

你的代碼,如果你KLICK與101

1

按鈕,如果你複製/粘貼此錯誤: 無效的對象名稱JunctionPartentsChilds「

也許問題是聯結表名稱中的「父母」的拼寫錯誤

+0

+1我馬上就看到了。 – Rohrbs 2010-09-17 16:15:35

0

請確保將GrandParents表作爲主鑰匙(身份)並重建模型