簡體   English   中英

實體框架更新一對一關系的兩個表

[英]Entity Framework updating two tables with one to many relationship

我首先使用EF代碼來控制我的數據。 我有兩個模型, ElectricitySiteElectricitySiteSplit

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.SiteSplitsElectricitySiteSplits表更新。

僅供參考-我已經在這里查看了:

實體框架5更新記錄

https://msdn.microsoft.com/zh-CN/data/jj592676.aspx

EF不會自動處理兩個表。 我必須指定添加/更新/刪除的項目。 看看這個線程干凈地更新Entity Framework中的層次結構

希望這可以幫助!

暫無
暫無

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

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