0

我有一個現有的數據庫和.NET項目,我最近剛剛從RC1升級到RTM。由於開關,我必須創建一個new initial migration由於表名稱的一些問題。我希望所有的FK限制都是刪除級聯,這應該是默認行爲。EF遷移不會更新數據庫中刪除約束條件下的FK(新初始遷移)

如果我看看我的遷移文件,所有的東西都是「onDelete:ReferentialAction.Cascade」,但是這並不反映在我的postgresql數據庫中,其中一切都是「ON DELETE NO ACTION」。

我發現的一個小小突破是,如果我使用流暢的API來執行.OnDelete(DeleteBehaviour.Cascade)並嘗試執行另一次遷移,它不起作用。創建的遷移沒有變化。但是,如果我嘗試執行.OnDelete(DeleteBehaviour.SetNull或其他任何操作),然後再進行另一次遷移,它將成功生成具有適當更改的適當遷移。這讓我想到EF在某種程度上已經認爲數據庫具有級聯的一切,實際上它不是,可能是我在創建新的初始遷移時做錯了什麼?

我該如何解決這個問題,使所有的外鍵在刪除級聯?最好不用爲我的項目中的每個實體編寫流利的api語句

回答

0

改爲使用this answer代替重新創建初始遷移。我嘗試保留以前的數據庫之前嘗試的方法,而這個方法刪除並重新創建。