【发布时间】:2015-09-02 00:16:17
【问题描述】:
这按预期工作:
var customer = getCustomerFromSomewhere();
customer.Name = "Foo";
context.SaveChanges();
// ...
// ... in an override of SaveChanges, get the entry state
var isModified = entryState == EntityState.Modified; // ==true
简单属性已更改,因此实体会自动标记为已被上下文修改。
现在考虑更改作为集合的导航属性:
var customer = getCustomerFromSomewhere();
customer.Orders.Clear();
var order = getOrderFromSomewhere();
customer.Orders.Add(order);
context.SaveChanges();
// ...
// ... in an override of SaveChanges, get the entry state
var isModified = entryState == EntityState.Modified; // ==false
因此,在这种情况下,实体不会自动标记为已修改。我通过手动将其标记为已修改来解决此问题,但我希望它自动发生。
我该怎么做?如何检测实体的关系是否被修改?
【问题讨论】:
标签: c# entity-framework