我有一个实体框架代码优先模型,其中供应商必须始终有一个供应商组:
public virtual SupplierGroup SupplierGroup { get; set; }
public int SupplierGroupId { get; set; }
但是底层数据库必须将 SupplierGroupId 设为可为空(由于另一个系统使用它,在该系统中,Supplier 可以在没有 SupplierGroup 的情况下存在)。
有没有办法让实体框架生成/映射到一个可以为空的数据库字段,但否则继续根据需要处理模型中的字段?
我尝试了一个流畅的映射:
modelBuilder.Entity<Supplier>()
.Property(s => s.SupplierGroupId)
.IsOptional();
但是当代码先生成数据库时,该字段仍然不能为空。
(如果曾经请求过没有 SupplierGroup 的供应商,这应该抛出异常,因为它永远不会发生)。