2011-07-10 22 views
14

我不明白爲什麼當我嘗試添加Venue對象並調用SaveChanges()時出現此錯誤。與Venue對象的唯一區別在於它們與City有1:1..0的關係。ReferentialConstraint中的依賴屬性映射到商店生成的列。列:'ID'

City city = ProcessCityCache(ev, country, db); // After this call, 'city' is already persisted. 
venue = new Venue { 
    TicketMasterURL = ev.VenueSeoLink, 
    Name = Capitalize(ev.VenueName), 
    City = city 
}; 
db.Venues.AddObject(venue); 
db.SaveChanges(); // Exception thrown here. 

任何有識之士將不勝感激!

Model Diagram

(打開在其自己的標籤/窗口中的圖像看原圖)

+0

確切的消息和異常的其他細節?我想這是冠軍,但這不是100%清楚。 –

+0

這是正確的。標題是InnerException。外部是'更新條目時發生錯誤。查看細節的內部例外.' –

回答

27

我發現這個問題。是我的錯。我有我的FK_Venue_City關係設置爲City.ID - >Venue.ID我想要的是City.ID - >Venue.CityID。我在數據庫中進行了更改,然後更新了模型。

+0

有同樣的問題。很容易把這些東西搞砸,所有這些Id都漂浮在這裏。謝謝! – itsmatt

+0

非常感謝。 –

8

OK,加入我的經驗,用這個令人費解的錯誤消息:

我有同樣的異常和數據庫對EDMX比較後(什麼是乏味的任務!)我發現,我錯誤地設置一到相反的關係(外國是小學,小學是外國)。

一旦我確定它一切順利!

無論如何 - 希望我失去的3-4小時會幫助別人! :)

+0

真是痛苦......終於找到了錯誤。是我的錯誤。你給了我正確的方向。在我的情況下,與兩個自動生成的列(身份)進行關聯。希望這會幫助某人。 – Xilmiki

5

我一直在遭受類似的問題。在我的情況下,我會錯誤地設置FK關係,然後用不正確的FK將表導入到我的EF模型中。儘管在Visual Studio中使用更新嚮導修復了FK關係,但我沒有找到糾正。

爲了解決這個問題,我從EF模型中刪除了表格,然後使用更新嚮導重新導入它,最終在更改中找到它。我希望這可以幫助別人!

0

我的情況也是一個錯誤配置的關聯。具體來說,我建立了1..1的關係,當我需要的是1..0,1

+0

我認爲這是我的問題。你在哪裏修復它?在數據庫中還是在EF代碼中?究竟如何? –

+0

我將它固定在edmx中。我的數據庫包含兩個表,其中一個是另一個的擴展,所以主鍵值可以相同,但其中一個表更可保證每個主鍵都有記錄,而第二個表是可選的。 我刪除了不正確的關係(使用工作圖)並添加了正確的關係。 – AndyClaw

0

添加我的兩位。我有這個錯誤,最終發現我的父母/子女關係被顛倒了。一旦我清理了這種關係,它就再次起作用了。

相關問題