由于使用了DTO和WCF服务,我尝试在项目中为Entity Framework 4.1创建自定义更改跟踪机制。
在更新情况方面我有两个选择
我可以简单地将对象的所有字段作为更新发送到数据库,即使单个数据字段没有更改。(一个数据库调用可能是冗余操作)
从数据库中获取以前的数据并与更新的数据进行比较并合并更改并发送到数据库。 (最少两次数据库调用+合并操作费用)
当我们考虑性能时选择的最佳方法是什么?如果选择第二种,是否有任何工具,助手可以自动合并更改?
答案 0 :(得分:1)
您可以使用自己喜欢的代理生成框架来完成这项工作。我最近为MongoDB设计了一个undo / redo和更改跟踪框架。我使用了mixins,并在运行时为每个实体类型创建了一个包装代理类型。因此,每当您从mongodb获取文档时,它都会返回此代理类型的实例。