去年我使用Entity Framework(当然是.NET3.5版本),并参考了Julie Lerhman的书籍,开发了一个数据访问服务,在此基础上开发了状态跟踪POCO对象。我们使用WCF,并拥有Silverlight 3客户端。现在我们要升级到.NET 4.0,我想采用代码生成来消除开发人员编写POCO类和转换类所浪费的时间。
根据我的研究,似乎有3种跟踪POCO状态的方法:
1)更改跟踪代理:这对我们似乎没用,因为它看起来无法在WCF序列化中工作。
2)基于快照:在检索POCO实体图时进行快照,将从客户端返回的图与该快照进行比较并查找差异...我认为这很不错。
3)自跟踪实体:代码生成器会为在POCO对象内执行自跟踪的逻辑生成代码。这似乎接近于我们现在正在做的事情,只是全部由代码生成器为我们生成。
我试图弄清楚所有这些方法之间的优缺点。我猜测1和2是“相关的”,需要保留最初查询POCO的ObjectContext实例,但尚未能确认。我也不明白为什么任何人真正关心选项1,因为选项3似乎可以做到相同或更多的事情...
对我来说,快照似乎是最简单的,但如果这需要一个ObjectContext长时间保持打开状态,我就不太确定...
作为一名初级程序员,我很感激任何关于此的建议,尤其是与Silverlight 3相关的(我相信选项2和3都适用于Silverlight 3,但选项2可能存在问题)。
根据我的研究,似乎有3种跟踪POCO状态的方法:
1)更改跟踪代理:这对我们似乎没用,因为它看起来无法在WCF序列化中工作。
2)基于快照:在检索POCO实体图时进行快照,将从客户端返回的图与该快照进行比较并查找差异...我认为这很不错。
3)自跟踪实体:代码生成器会为在POCO对象内执行自跟踪的逻辑生成代码。这似乎接近于我们现在正在做的事情,只是全部由代码生成器为我们生成。
我试图弄清楚所有这些方法之间的优缺点。我猜测1和2是“相关的”,需要保留最初查询POCO的ObjectContext实例,但尚未能确认。我也不明白为什么任何人真正关心选项1,因为选项3似乎可以做到相同或更多的事情...
对我来说,快照似乎是最简单的,但如果这需要一个ObjectContext长时间保持打开状态,我就不太确定...
作为一名初级程序员,我很感激任何关于此的建议,尤其是与Silverlight 3相关的(我相信选项2和3都适用于Silverlight 3,但选项2可能存在问题)。