使用EntityFramework Core创建没有父级的子级

时间:2017-05-26 07:51:27

标签: asp.net-core entity-framework-core

在我的ASP.Net核心(1.1)Web API中,我有两个模型:任务和功能。最初我创建了一个或多个任务,然后我可以将它们中的一些组合成一个特征。

为此我写了我的模型如下:

public class User_Task
{
    [Key]
    public long TaskId { get; set; }
    public string What { get; set; }

    [ForeignKey("FeatureId")]
    public long FeatureId { get; set; }

    public User_Task()
    {

    }

}

和功能:

public class Feature
{
    [Key]
    public long FeatureId { get; set; }
    public string Analyst_comment { get; set; }

    public virtual ICollection<User_Task> Tasks { get; set; }

    public Feature()
    {

    }
}

现在的问题是:我没有在没有首先创建功能的情况下创建任务 - 我尝试将featureId传递为0或对于任务的POST请求为null但是它失败了(对于null我得到错误请求而对于0它抛出异常)。

我应该在我的模型或控制器或repo类中修改什么来处理这种情况?

1 个答案:

答案 0 :(得分:3)

您必须制作nullable public class User_Task { [Key] public long TaskId { get; set; } public string What { get; set; } [ForeignKey("FeatureId")] public long? FeatureId { get; set; } }

ICard

然后添加并运行迁移,EF Core应该能够找出它是一个可选的一对多关系。