3
我在下面的代碼,看起來像一個徒勞的,嘗試配置外鍵OnDelete
行爲:爲什麼我的EF Core遷移忽略模型的OnDelete設置?
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Contact>()
.HasOne(e => e.Gender)
.WithMany()
.HasForeignKey(e => e.GenderId)
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<Contact>()
.HasOne(e => e.Title)
.WithMany()
.HasForeignKey(e => e.TitleId)
.OnDelete(DeleteBehavior.Restrict);
}
然而,當我產生第一次遷移,創建此和另外兩個表,它對於Contact
創建約束如下:
constraints: table =>
{
table.PrimaryKey("PK_Contact", x => x.Id);
table.ForeignKey(
name: "FK_Contact_Gender_GenderId",
column: x => x.GenderId,
principalTable: "Gender",
principalColumn: "Id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_Contact_Title_TitleId",
column: x => x.TitleId,
principalTable: "Title",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
凡大火是否得到SetNull
,在非空的列,GenderId
? Cascade
也許是一個默認值,忽略了我的配置。
看起來像一個錯誤。你能否[提交新的問題](https://github.com/aspnet/EntityFramework/issues/new)? – bricelam
@IvanStoev請問爲什麼它不適用於EF Core?如果不是EF Core,我使用的Microsoft.EntityFrameworkCore。*包是什麼? – ProfK
關於你的問題,你可能會考慮@bricelam的建議,因爲我無法用EF Core/Full .NET Framework重現它。 –