Linq to sql 从XPO到LINQ再到SQL的迁移技巧
我是DevExpress XPO库的长期用户。它有许多很棒的特性,但也有一些缺点:Linq to sql 从XPO到LINQ再到SQL的迁移技巧,linq-to-sql,devexpress,optimistic-locking,xpo,Linq To Sql,Devexpress,Optimistic Locking,Xpo,我是DevExpress XPO库的长期用户。它有许多很棒的特性,但也有一些缺点: 保存现有对象时,在更新查询中发送所有属性;更改是按对象跟踪的,而不是按属性跟踪的 乐观锁定是基于每个对象而不是每列进行的 当乐观锁定异常发生时,不提供描述冲突性质的上下文;您唯一真正的反应是操作失败或重新生成操作,然后在循环中重试 LINQ对XPQuery的支持非常弱(至少在我们使用的8.1中是如此)。因此,您经常被迫使用XPView(它不是类型安全的)或XPCollection(它可以返回您不一定需要的列) 在
哦,我应该关心LINQ to实体吗?这看起来比我们需要的任何东西都要复杂得多。我很难过,因为我没有从社区得到任何答案,但以下是我目前的想法。我曾经有机会在不同的项目上试用过LINQtoSQL和ADO.NET实体框架,我觉得ADO.NET实体框架可以更好地满足我们的需求。就我希望保留的XPO特定功能而言:
。或者SQLServer2008已经改进了它的锁定机制,这样我们就不会遇到同样的锁定问题
所以您确实将应用程序从XPO迁移到了Linq2Sql,是吗?我也一直在使用XPO作为XAF的一部分,老实说,我更喜欢Linq2Sql/EF而不是XPO,但因为它在XAF中紧密耦合,所以我没有其他选择。我们将使用XAF来加速我们产品的UI实现,我认为XAF做得很好,但我真的很担心XPO
谢谢,只是好奇,您也看过DB4Objects吗?我不知道db4o中的锁定方案,但很想知道您是否对其进行了评估。(虽然它是一个真正的OODBMS,但它不是ORM)不,我没有研究过DB4Objects。因为我们依赖于SSAS,所以改变数据库引擎对我们来说并不是一个真正的选择。我想了解一下您是如何发现LinqToSql与XPO的。还是你走了另一条路?--AlexI将发布我自己问题的答案,只是想对>>1发表评论。保存现有对象时,所有属性都会在更新查询中发送;更改是按对象跟踪的,而不是按属性跟踪的。我没有机会迁移它,现在我在另一家公司。然而,我已经在未来的产品中使用了EF,并且对此非常满意。我不会太担心XPO。我的大多数问题都源于在具有高并发性和线程的web环境中使用它。如果您在XAF中使用它,我假设它是一个低并发性的单线程应用程序。只要从一开始就知道乐观锁定是如何工作的,你应该很好。是的,它是一个Winform业务应用程序,并且是单线程的,所以我不太担心并发性。我已经和XAF打了好几天了,乐观地说,锁定对我的情况来说已经足够好了,但并不是最理想的。尽管如此,XAF已经开发了多年,因此它必须处理其遗留代码。