首页 > 解决方案 > 为什么 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 中它可以工作......

标签: c#entity-framework-core

解决方案


像这样明确定义你的外键:

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; }
}


推荐阅读