EntityFramework v4 ApplyCurrentValues不保存引用的属性更改

时间:2010-01-06 21:15:34

标签: .net entity-framework

我有一个项目,我使用EFv4将数据保存回我的存储库。这对我的对象上的简单属性按预期工作,但对相关对象没有任何作用。

例如,我有一个User对象和一个相关属性Roles,它是Role实体的集合。

如果我在UI中更新用户的lastActivity日期和分配给用户的角色,然后将User对象发送回要更新的存储库,我可以在User对象中看到lastActivity和Roles的新值,但是当我打电话的时候:

this.ObjectContext.ApplyCurrentValues(entitySet.Name.ToString(), entity);
this.ObjectContext.SaveChanges();

只保存简单属性,如lastActivity日期,角色更改将被忽略。

我是否需要做一些特殊的更新所有引用的对象?

更新 我在网上搜索了一下,看到有人提到ApplyCurrentValues只影响标量属性。仍然没有改变我原来的问题,但它可以解释为什么相关实体没有更新。微软的文档没有提到我所能看到的内容。

1 个答案:

答案 0 :(得分:2)

我使用MSFT进入此版本,它似乎按预期工作。以下是MSFT的引用:

  

ApplyCurrentValues仅适用于   单个标量属性   实体。你想要的是什么   完成将是最容易的   自我跟踪实体。希望如此   切换到使用这些实体   因为你不会太痛苦   可以只swpa代码生成   你正在使用的模板(来自   默认为自我跟踪   实体一)。你不必   彻底改变你的模型,和   希望你的改变   存储库很小。

     

我已将文档问题记录到   澄清ApplyCurrentValues的作用。   感谢您报告此事!

以下是referenced question