在实体框架中查找变更集
我在 ASP.NET MVC3/WCF 应用程序中使用 EF4 存储库。我正在使用工作单元模式将更改应用到数据库,
用户要求之一是创建包含实体更改列表的票证/电子邮件。有没有办法可以在以下函数中仅检测实体上更改的属性?
public void UpdateTrackedEntity<T>(T modifiedEntity) where T : class
{
var set = CreateObjectSet<T>();
set.ApplyCurrentValues(modifiedEntity);
}
I am using EF4 repositories in a ASP.NET MVC3/WCF application. I am using the Unit of Work pattern to apply changes to the database
One of the user requirements is to create a ticket/email with a list of changes to the entity. Is there a way I can detect only the changed properties on an entity in the following function?
public void UpdateTrackedEntity<T>(T modifiedEntity) where T : class
{
var set = CreateObjectSet<T>();
set.ApplyCurrentValues(modifiedEntity);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,有一种方法:
检查 ObjectStateEntry更多细节。
Yes there is a way:
Check ObjectStateEntry for more details.
假设您的域服务对象是 DsrvObj
//这些可能是有益的,也
将为您提供变更集,但有趣的是,我今天在这个变更集中看不到一些修改的布尔字段!最后我意识到,例如,如果 DataGrid 处于编辑模式,您的更改不会进入变更集,结束编辑后它会进入变更集。
实施它,测试它,相信它!
Suppose that your domain service object is DsrvObj
//These ones could be beneficial also
will give you the changeset, But interestingly I can't see some modified boolean fields on this changeset today! Finally I realized that for instance if a DataGrid is in EditMode your changes doesnt go to changeset,After end edit it goes to changeset.
implement it ,test it ,Trust it!