EFCore的外鍵級聯刪除導致的【可能會導致循環或多重級聯路徑】


之前也是經常遇到這個問題,但好在每次創建的實體不多,很容易就能找到是哪個外鍵導致級聯循環刪除問題

 

之前都是這么處理,因為創建的實體也不多,所以還處理得來

但最近跟別人合作寫后端,別人寫了好多實體,我一Update-Database,傻了,我得一個個地處理。
其實我也不太喜歡這個級聯刪除,是否刪除關聯實體應該由我自己來把握。那么可以這樣處理,這樣所以的外鍵刪除關聯都變成Restrict了

var foreignKeys = modelBuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()).Where(fk => fk.DeleteBehavior == DeleteBehavior.Cascade);
 foreach (var fk in foreignKeys)
{
    fk.DeleteBehavior = DeleteBehavior.Restrict;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM