[英]Entity Framework updating two tables with one to many relationship
我首先使用EF代碼來控制我的數據。 我有兩個模型, ElectricitySite
和ElectricitySiteSplit
。
ElectricitySite
包含List<ElectricitySiteSplits> ElectricitySiteSplits
,這是一對多的關系。
我正在嘗試為存儲庫層編寫我的Update方法,該方法將處理兩個表,到目前為止,我有:
public void UpdateElectricitySite(ElectricitySite updatedElectricitySite)
{
var dbElectricitySite = GetElectricitySite(updatedElectricitySite.ElectricitySiteId);
_context.ElectricitySites.Attach(updatedElectricitySite);
_context.Entry(updatedElectricitySite).State = EntityState.Modified;
_context.SaveChanges();
}
單擊“保存”按鈕時出現以下錯誤:
附加類型為'MySolution.Repo.ElectricityModels.ElectricitySiteSplit'的實體失敗,因為相同類型的另一個實體已經具有相同的主鍵值。 如果圖形中的任何實體具有相互沖突的鍵值,則使用“附加”方法或將實體的狀態設置為“不變”或“修改”時,可能會發生這種情況。 這可能是因為某些實體是新實體,尚未收到數據庫生成的鍵值。 在這種情況下,請使用“添加”方法或“已添加”實體狀態來跟蹤圖形,然后根據需要將非新實體的狀態設置為“未更改”或“已修改”。
我認為這是因為我尚未附加ElectricitySiteSplit
實體,但是如果將其添加到ElectricitySites附件下方,則可以:
_context.ElectricitySiteSplits.Attach(updatedElectricitySite.SiteSplits);
我收到此錯誤:
嚴重性代碼說明項目文件行抑制狀態錯誤CS1503參數1:無法從“ System.Collections.Generic.List”轉換為“ UtilityBilling.Repo.ElectricityModels.ElectricitySiteSplit”
如何處理以清單形式包含在updatedElectrcitiySite.SiteSplits
的ElectricitySiteSplits
表更新。
僅供參考-我已經在這里查看了:
EF不會自動處理兩個表。 我必須指定添加/更新/刪除的項目。 看看這個線程干凈地更新Entity Framework中的層次結構
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.