簡體   English   中英

可空 FK 為 null 時的實體框架驗證錯誤

[英]Entity Framework validation error when nullable FK is null

信息:.Net Framework WPF 應用程序,實體框架 6

當我嘗試將實體添加到我的數據庫表中並將其可為空的外鍵設置為 null 時,我從 Entity Framework 收到以下驗證錯誤:

拋出異常:EntityFramework.dll 中的“System.Data.Entity.Validation.DbEntityValidationException”
state“已添加”中“項目”類型的實體具有以下驗證錯誤:
屬性:“SomeForeignKeyId”,
錯誤:“字段“SomeForeignKeyID”是必需的。

我聲明的外鍵沒有任何屬性,例如[Required]就像這里的情況一樣,所以這個答案不適用於我。 它只是一個簡單的 FK:

 public int? SomeForeignKeyId { get; set; }

現在對我來說一個臨時解決方法是禁用 EF 驗證

 Configuration.ValidateOnSaveEnabled = false;

這顯然不是最好的解決方案。 那么這里的問題是什么?

自己找到了解決方案(而且相當快,哈哈)

我在我的 model 構建器中有這個

     modelBuilder.Entity<ForeignModel>()
     .HasMany(c => c.Items)
     .WithRequired(i => i.ForeignModel)
     .HasForeignKey(i => i.SomeForeignKeyId)
     .WillCascadeOnDelete(false); 

.WithRequired(i => i.ForeignModel)顯然根據需要聲明了該列,因此解決方案是將其更改為.WithOptional(i => i.ForeignModel)

暫無
暫無

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

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