【发布时间】:2013-10-04 07:33:04
【问题描述】:
我有一个 N 层应用程序,其中 POCO 由服务器端的实体框架填充并传输到我的客户端应用程序。客户端对 POCO 进行更改或添加新的 POCO,然后将它们发送回服务器以存储在数据库中。
如果我使用的是纯 POCO,即没有代理,也没有自我跟踪实体,人们正在采取哪些常见方法来解决变更跟踪问题?如果您的服务收到一组 POCO,它如何知道使用实体框架进行添加、更新或删除?
【问题讨论】:
我有一个 N 层应用程序,其中 POCO 由服务器端的实体框架填充并传输到我的客户端应用程序。客户端对 POCO 进行更改或添加新的 POCO,然后将它们发送回服务器以存储在数据库中。
如果我使用的是纯 POCO,即没有代理,也没有自我跟踪实体,人们正在采取哪些常见方法来解决变更跟踪问题?如果您的服务收到一组 POCO,它如何知道使用实体框架进行添加、更新或删除?
【问题讨论】:
Entity Framework 没有对这种断开连接的场景提供良好的内置支持。我知道三个一般选项:
使用GraphDiff,一个开源插件库
优势
缺点
在服务器端手动更新对象图 (Example)
优势
缺点
将实体状态的属性添加到您的对象,并通过相应地设置状态在客户端手动跟踪更改(我没有这种方法的示例;我相信,Julie Lerman 正在使用并推荐它)
优势
缺点
【讨论】: