簡體   English   中英

EF6:多個添加的實體可能具有相同的主鍵

[英]EF6: Multiple added entities may have the same primary key

我繼承了一個數據庫,需要使用EF6插入數據。 我收到錯誤:

DbUpdateException: Unable to determine the principal end of the 'POSModel.FK_KitMemberTaxRaw_KitMemberSaleReturnRaw_KitMemberSaleReturnRowId' relationship. Multiple added entities may have the same primary key. 

我使用DataContractSerializer將XML反序列化為POCO對象。 我正在使用xml文檔結構中的對象引用來定義關系。 POCO對象是使用NuGet軟件包提供的t4腳本生成的(根本無法與任何解串器配合使用!)

我已經這樣裝飾KitMemberTaxRaw:

[ForeignKey("KitMemberSaleReturnRaw")]
public virtual KitMemberSaleReturnRaw KitMemberSaleReturnRaw { get; set; }

[ForeignKey("KitMemberKitMemberSaleReturnRaw")]
public virtual KitMemberKitMemberSaleReturnRaw KitMemberKitMemberSaleReturnRaw { get; set; }

KitMemberTaxRaw表可以連接到表KitMemberKitMemberSaleReturnRaw或KitMemberSaleReturnRaw(但不能同時)。

EF如何確定“關系的主要目的”?

事實證明,此問題是由於EF6無法自動理解包含指向父級和可選的父級父級的鏈接的表。 Microsoft提供的模板生成的導航屬性正確但不足。

為了解決該問題,我為它不了解的關系手動創建了臨時主鍵。

注意:我使用的DataContractSerializer類創建了POCO對象,為實例化的導航屬性創建了一個數組。 我必須更改模板以生成IList <>屬性而不是ICollection <>。 在運行時出現錯誤,因為無法動態調整數組大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM