我很新的實體框架,我有一些麻煩調整。就像所有的事情一樣,一開始我看到它讓我的生活更加簡單,並認爲它非常棒。然而,隨着我的對象模型稍微複雜一些,我開始面臨越來越多的問題。實體框架保存子對象
雖然我已經設法通過在這裏搜索幾乎所有的問題找到答案,但我現在的這個問題困擾着我。
我有兩個通過1到1/0關係鏈接的實體。我不能發表圖片又那麼請在下面fogive我躲閃圖紙:
Person (id, name, address, dob, etc. etc.)
Spouse (id, name, address, dob, etc. etc.)
雖然實際是比較複雜的,我不認爲我的問題了作用。現在
,看到這是一個1到0/1的關係無論是一個人1個配偶或他們0。如果我通過構建我的對象:
Person person = new Person();
person.Spouse = new Spouse();
person.Spouse = spouse;
(包括想象屬性設置)
然後保存。它工作的一種享受。然後我可以再次加載它,編輯它等。生活是宏偉的。
我遇到問題的地方是我救了一個人(沒有配偶),然後在稍後階段加載此人進行編輯並嘗試附加配偶。當我到達我的容器時。安裝(人);調用時,它會引發以下異常:「具有臨時EntityKey值的對象不能附加到對象上下文。」
現在,我非常有信心,這是由於該方式IM添加配偶,即:
Person person = LoadPerson(id);
Spouse spouse = new Spouse();
person.Spouse1 = spouse;
問題IM看到的是我嘗試到現在這是以前沒有相關的子實體關聯。我在錯誤信息上進行了大量搜索,但通常它似乎與對象上下文有關。我還發現了一個解決方法(從我找到的結果)。如果我使用1對多關係並且執行Person.Spouses.Add(配偶),它可以正常工作。然而,由於這種關係不合邏輯(在這個國家,無論如何......),我毫不猶豫地這樣做了。林肯定它的一個簡單的答案,我已經明顯地忽略了我看到的結果(我高度懷疑我是第一個嘗試做這個...)但我沒有嘗試過似乎工作。
任何幫助將高度讚賞...