如何在EF中更新导航属性/相关表?

时间:2012-09-11 20:47:38

标签: entity-framework entity-framework-4 sql-update scalar-context

我有一个带有导航属性Customer的对象Days(天是一个单独的表,其中包含 - day_id,customer_id - FK)。

mycontext.Customers.ApplyCurrentValues(cust);
mycontext.SaveChanges();

这只更新了客户的标量属性,而不是日期。更新天有什么聪明的方法吗? (没有在几天手动迭代..)?如果没有 - 是否有更新第二个表(天)的最佳做法? 如果可能,请编写应该使用的显式代码。

P.S。我目前正在使用EF 4.0

2 个答案:

答案 0 :(得分:4)

如果您想要一种简单易用的方法来处理断开连接的对象,可以使用GraphDiff库。

mycontext.UpdateGraph(cust, map => map.OwnedCollection(x => x.Days));
mycontext.SaveChanges();

这将插入或更新客户对象,并同时更新Days集合。

答案 1 :(得分:1)

如果不在相关实体上手动迭代,就不能这样做。看看这个可能有帮助的问题和答案。MVC Entity Framework modifying child entities