这是一个非常非常基础的问题。
假设我想在今天构建一个具有 n 层架构的 .NET 企业 CRUD 应用程序。我应该使用什么数据访问方法?我想要互操作性,所以 DataSets 出来了(我想它也不再是 2003 年了)。同样,.NET RIA Services 所宣传的通过附加服务向非 Silverlight 客户端公开其功能的方法对于更新操作来说似乎不是很有说服力。我已经能够用 Entity Framework 拼凑一些东西,它没有 n 层支持 OOB,因此需要许多奇怪的反射类型的东西来模拟乐观并发的外表(MSDN Magazine 中的示例没有看起来它不支持乐观并发。我听说这在 EF4 中得到了改进,但我有点怀疑,除了在 CTP 中它还没有真正可用)。
那么,人们实际上可以在他们的企业 CRUD 项目中使用更新检查的乐观并发做些什么呢?数据集?使用 DTO 进行 DIY,天知道涉及多少工作?以及如何处理绑定数据?假设我有一个绑定到 DataGrid 的集合,我是否需要听 CollectionChanged 进行更改?我是否需要保留大量更改,以便在撤消时比较 PK?这似乎是噩梦。
其次,如果更新检查乐观并发不是硬性要求怎么办?然后怎样呢?