在我的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类中修改什么来处理这种情况?
答案 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应该能够找出它是一个可选的一对多关系。