我们有一个很棒的项目,它使用NHibernate作为对象/对象模型。我们希望迁移到L2S或L2EF。我们可以像NHibernate那样做所有的事情吗?
你建议我们做这项工作吗?这项工作的优点和缺点是什么?这两个ORM有共同的功能吗?
注意:我们的项目是用C#编写的。
发布于 2010-04-08 21:48:12
Linq to SQL不支持任何接近NHibernate的整个特性集的。我使用Linq to SQL,我认为它很棒,但它的目的是用作数据库的直接1:1映射。与NHibernate相比,它不是真正的对象关系映射,而更像是一种数据访问解决方案。在其他东西中,它缺失了:
SQL Server组件properties;
Entity Framework4在其特性集方面与NHibernate非常接近,您应该能够在NHibernate中完成当前所能做的大部分工作。但我完全同意其他人的建议,不要仅仅为了好玩而改变你的ORM;实际的语义是非常不同的,你最终会经历很多痛苦和错误修复周期。
发布于 2010-04-08 21:07:03
你有一个令人信服的理由来改变你的ORM吗?我主张不做任何更改,因为您有一个现有的应用程序,该应用程序使用一个良好的持久化框架工作得很好,并且得到了良好的支持。
是的,你可以使用entity框架来做任何你目前正在用NHibernate做的事情(虽然对LINQ to SQL不是很确定),但是不要为了框架而切换。这就像在你买车一周后换掉轮胎一样--有了新的闪亮的轮胎可能很令人兴奋,但归根结底,它们只是轮胎。您现在拥有的轮胎很好-也许应用程序的其他方面会从您分配给这个项目的时间中获得更好的好处?
发布于 2010-04-08 21:10:52
除非你有一个很好的理由去改变你的ORM,否则这将是更多的痛苦而不是它的价值。更改ORM与交换数据库提供商一样重要。
NHibernate中将会有其他对象关系管理工具中没有的特性(组件会立即浮现在脑海中),因此您必须找到解决办法,或者重新设计类或表结构来弥补这些变化。
你应该做这项工作吗?我建议你不要这么做。
https://stackoverflow.com/questions/2599960
复制相似问题