【发布时间】:2015-01-28 18:41:04
【问题描述】:
我的模型如下所示:
public class Job
{
public int Id { get; set; }
public virtual JobResult Result { get; set; }
}
public class JobResult
{
[Key, ForeignKey("Job")]
public int JobId { get; set; }
[Required]
public virtual Job Job { get; set; }
}
如您所见,这种关系是必需的一对一关系。 当我尝试创建和保存作业时:
Job job = new Job();
job.Result = new Result();
context.Jobs.add(job);
context.SaveChanges();
我收到以下错误:
无法确定相关操作的有效顺序。 由于外键约束,模型可能存在依赖关系 需求或存储生成的值。
我不太明白错误信息。这是什么意思,什么可能导致这个错误?
【问题讨论】:
-
How do I create a real one-to-one relationship in SQL Server 的可能副本。我很确定在 SQL Server 中建立真正的 1 对 1 关系在技术上是不可能的,因为这意味着你必须同时插入两条记录(否则你会在插入时遇到约束错误),在两个表,两个表之间具有外键关系。
-
@ErikPhilips - 他在下面的评论中提到实际上是 1:0..1 而不是 1:1,因为 JobResult 是可选的
-
@ErikFunkenbusch 问题应该已经更新,因为所有问题都应该是自给自足的,不需要任何人阅读 cmets 或 cmets 的答案。
-
@ErikPhilips - 我同意,只是指出来......
标签: database entity-framework entity-framework-6