c# - 为什么 EF Core 会自动生成 null 属性
问题描述
我有两个模型:
class ModelA
{
public Id {get; set;}
public int? ModelBId { get; set; }
public ModelB ModelB { get; set; }
}
class ModelB
{
public int Id { get; set; }
}
当我尝试仅添加 ModelA (ModelBId 为int?
)时:
var model = new ModelA();
context.ModelAs.Add(model); // after this step ModelB is already set to not null
context.SaveChanges();
EF Core 2.2 插入 ModelA 和 ModelB ......为什么?我只需要添加带有 null ModelB 的 ModelA ......在 EF6 中它可以工作......
解决方案
像这样明确定义你的外键:
class ModelA
{
public Id {get; set;}
[ForeignKey("ModelB")]
public int? ModelBId { get; set; }
public ModelB ModelB { get; set; }
}
或者
class ModelA
{
public Id {get; set;}
public int? ModelBId { get; set; }
[ForeignKey("ModelBId")]
public ModelB ModelB { get; set; }
}