0
在我的ASP.Net核心(1.1)Web API中,我有两个模型:任务和特征。最初我创建了一个或多个任务,然后我可以将它们中的几个组合成一个功能。使用EntityFramework Core创建没有父项目的子项核心
为此,我写了我的模型如下:
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或null传递给任务的POST请求,但它失败(对于null,我得到错误的请求,对于0它抛出异常)。
我应该在模型或控制器或回购课程中修改哪些内容来处理这种情况?
谢谢!这工作,但它抛出了异常MySqlException:创建一个功能时,键'PRIMARY'的重复条目'3' – Nitish
这意味着该功能(ID为3)已经存在。当创建一个功能时,您必须**不**设置'FeatureId',即如果您执行了'新功能{Id = 3}'并添加它。相反,你首先需要加载它并修改加载的实体或者首先附加它,使用'dbcontext.Attach(feature)' – Tseng
那么在我的数据库中目前还没有功能,而且我的Swagger API建议我传递featureId = 0而功能创建,基本上适用于创建任务。数字3实际上是指taskId!所以基本上任务与taskId 3存在,它不让我创建一个功能,该任务与该ID是3 – Nitish