2010-12-14 73 views
6

我是EF的一個相對newby,並使用EF4創建了一個簡單模型(見下文)。 alt text實體框架 - 使用外鍵插入到多個表中

我遇到了一個問題,即向UserRecord實體中插入一條新記錄,並隨後添加使用新創建的UserRecordId作爲其主鍵的UserDetail實體。下面顯示的代碼用於在我的數據庫具有一對多關係時工作,但是當我將其更改爲一對一關係時,下面的圖像中突出顯示了該錯誤。 alt text

我相信它不工作,因爲現在沒有與UserRecord相關的UserDetails屬性,因爲它現在是一對一的關係。我的問題是我現在如何插入新的UserRecord和相應的UserDetail實體與一對一的關係?

任何關於這個的幫助都非常感謝,因爲一直在尋找網絡和嘗試各種不同的事情沒有成功。

乾杯

Cragly

回答

15

UserDetail對象應該有一個鏈接回UserRecord對象的屬性。 (它可能被稱爲User?如果我正確閱讀下面的導航部分。)如果您將該屬性設置爲新的,未提交的對象,它將在提交這兩個對象時自動填充該對象。

UserRecord userRecord = new UserRecord(); 
// whatever 

UserDetail userDetail = new UserDetail(); 
userDetail.User = userRecord; // This will auto-fill the FK during commit. 
// whatever 

// Add both userRecord and userDetail to the context and commit. 
+1

太棒了!非常感謝,非常出色。看起來我試圖做錯了方向,並希望將UserDetails添加到UserRecord而不是其他方式。你救了我更多的掉髮,我可以保存,直到我打我的下一個磚英孚牆! – Cragly 2010-12-14 20:36:27

+0

是的。我在我的系統中嘗試了很多其他方法,包括嘗試兩階段提交。這是唯一對我有用的東西,它啓動時非常優雅和直觀。 – jdmichal 2010-12-15 19:04:00