假设我创建了一个名为person的新对象,我想将它连接到已经在数据库中的一个名为address的记录。当我去保存Person对象时,我不想再次插入地址并创建副本。使用EF处理此问题的最佳方法是什么?
答案 0 :(得分:1)
我发现最好的方法是只设置外键字段,而不是整个对象。
例如,
Person p = new Person();
p.Name = "John Doe";
p.AddressId = 12345;
context.People.Add(p);
context.SaveChanges();
这是Julie Lerman的一篇很棒的文章,解释了为什么EF重复记录。 https://msdn.microsoft.com/en-us/magazine/dn166926.aspx