[英]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.