以多对多关系保存实体

时间:2016-05-23 22:28:21

标签: c# sql-server entity-framework

(凌晨3点,所以请耐心等待!)

这是EF6。实体ProceduresPoints之间存在多对多关系。我创建了一个名为Procedure的新P对象,并将其中一个现有Point对象添加到其Points集合中。然后我将P发送给EF进行保存:

context.Procedures.Add(P);
context.SaveChanges();

不幸的是,这会尝试将Point对象也插入到数据库中,这显然会因重复的主键错误而失败。

在其他几件事中,我检查了context.ChangeTracker.Entries()的值,令我惊讶的是,它包含21个条目而不是2个。经过进一步调查,看起来EF正在为递归{{1}创建条目} 关系。我该如何解决这个问题?

修改

(现在凌晨4点,:))

我使用以下代码使其正常工作

Procedure > Point > Procedure

真的有正确的方法吗?

0 个答案:

没有答案