簡體   English   中英

親子,未按錯誤順序插入FK

[英]Parent-Child without FK inserting in wrong order

我有一個舊的SQL Server數據庫,由於許多原因,我無法進行重大更改。 兩個表之間存在父/子關系。 這兩個表之間沒有外鍵。 子表中還有一個FOR INSERT觸發器,用於檢查是否存在父記錄。 如果沒有父記錄,則插入會由於使用raiserror的觸發而失敗。

我試圖將一些記錄添加到父/子表。 我首先將新記錄添加到父表中。 然后,我接下來將多個記錄添加到子表中。 我已經通過記錄語句驗證了訂單的正確性。 DbContext.SaveChangesAsync方法稱為DbUpdateException拋出與相同的錯誤消息觸發在raiserror

問題是即使我先在代碼中添加父記錄,也要先添加子記錄。 有什么方法可以在不更改數據庫的情況下解決此問題? 我意識到這里的當前數據庫設計並不理想,但是這超出了我的控制范圍。

我可以在插入父項之后調用SaveChangesAsync ,但是隨后我放棄了在操作結束時僅調用一次SaveChangesAsync的事務好處。 還有其他解決方案可以影響Entity Framework數據庫插入的順序嗎?

我認為不可能設置獨立實體的插入順序(即沒有外鍵)。 這是EF的內部機制。 在EF中,一次事務中多次調用SaveChanges沒問題。 查看context.Database.BeginTransaction()或“老式” TransactionScope

在MSDN論壇上的類似討論

暫無
暫無

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

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