2013-12-20 39 views
2

在EF 5.0參照完整性約束衝突發生

調用context.Set<Person>().Attach(person);時發生參照完整性約束違反我收到以下錯誤:定義引用約束的屬性值不本金和依賴對象之間是一致的在關係中。

有什麼方法可以找出哪個確切的屬性產生這個錯誤?

我知道原因是什麼,是一個外鍵是直接一個對象的屬性是從相關對象的主鍵不同,因此,例如:

Person --> Address 
ID   PersonID 
      Person 

Address.PersonID是不一樣的作爲Address.Person.PersonID,但無論我在哪裏看我的真實生活對象,我都沒有得到哪個屬性造成這種情況。

那麼有什麼辦法可以找到問題的根源,也許是通過ObjectStateManager或ChangeTracking例程?

我已經編寫了一個t4模板文件(用於根據我的entitymodel自動生成它),它檢查每個ForeignKey/PrimaryKey,並且我找不到差異。

+0

你知道這是導致錯誤的數據而不是模式,對嗎?如果地址記錄的PersonID爲100,並且沒有Person的PersonID爲100 ...將導致錯誤。 –

+0

請在粘貼之前粘貼您的Person類和person對象嗎? – Phil

回答

0

多個ForeignKey毀了我的一天...

因此,要完成我上面的示例它就像;

Person --> Address 
ID   PersonID 
ID2  PersonID2 
      Person 

而且我沒有檢查我的對象的ID2,它加載不正確。

相關問題