选择ORM时,LINQtoSQL或LINQtoEntities比NHibernate好吗?

选择ORM时,LINQtoSQL或LINQtoEntities比NHibernate好吗?,nhibernate,linq-to-sql,orm,Nhibernate,Linq To Sql,Orm,我发现使用NHibernate甚至Castle比使用LINQtoEntities或LINQtoSQL做得更多 我疯了吗?不,你没有疯。nHibernate是一个完整的OR映射器,Linq-to-SQL和Linq-to-Entities并没有实现您期望从OR映射器中得到的所有东西,并且针对的是一组稍微不同的开发人员 但是别让这件事影响到你,林克。Linq仍然是个不错的主意。。试试Linq to nHibernate:-)nHibernate、Castle等的最大缺点是它们不是很轻(尤其是nHibe

我发现使用NHibernate甚至Castle比使用LINQtoEntities或LINQtoSQL做得更多


我疯了吗?

不,你没有疯。nHibernate是一个完整的OR映射器,Linq-to-SQL和Linq-to-Entities并没有实现您期望从OR映射器中得到的所有东西,并且针对的是一组稍微不同的开发人员


但是别让这件事影响到你,林克。Linq仍然是个不错的主意。。试试Linq to nHibernate:-)

nHibernate、Castle等的最大缺点是它们不是很轻(尤其是nHibernate)


Linq to SQL适用于重量轻、使用有限的ORM。

需要记住的一件事是,NHibernate可以是一个绝对需要配置的pig,特别是因为它主要基于XML配置文件,因为它的根是原始的Hibernate

在某种程度上减轻了痛苦


不过,Linq当然符合.NET的一般工作方式。

我已经使用了NHibernate和Linq-to-SQL。从我的观点来看,这取决于项目,如果我需要一些快速的东西,我会选择L2S,创建dbml映射并开始使用它非常简单。如果我正在开发一个更高级的企业解决方案,我会选择久经考验的、值得信赖的ORM-NHibernate,我发现日志记录和事务功能使用起来很简单

LINQ到SQL的学习曲线相对较短,NHibernate的学习曲线要陡峭得多

LINQ to SQL只支持SQL Server,因此如果您拥有Oracle数据库,那么您已经做出了决定-NHibernate


我建议查看关于学习NHibernate的优秀屏幕广播。

我没有尝试过实体框架,但我肯定会推荐NHibernate而不是Linq to SQL;我能给出的最大理由就是控制。LINQtoSQL喜欢对一切进行更多的控制,加载对象并维护关于对象的各种跟踪信息。如果序列化/反序列化,跟踪信息可能会丢失,再次保存时可能会发生奇怪的事情。NHibernate更像是一个存储库——您可以将任何您想要的对象(当然,您已经将其配置为可以理解的对象)交给它,然后它将其放入数据库中,而不管您对它做了什么

Blockquote Linq当然符合.NET工作的一般“方式”


哎呀,这种情绪让我害怕。net中内置的RAD功能不是dot net的工作方式,它只是一个用于建立原型的工具集。NET允许我们完成完整的DDD应用程序,具有高水平的内聚性、分离关注点,并允许我们编写解耦的代码,尽管ms做出了各种耦合的尝试。我强烈反对.net喜欢被耦合,某些工具喜欢被耦合,我将把linq加入到这场争论中。LINQtoSQL破坏了拥有独立域模型的想法。一想到使用我的数据库模式作为底层模型对象,我就畏缩。适当的ORM工具应该允许我们首先对域进行建模,然后将关系数据库链接到这些模型。而不是相反。

完全正确。它们明显比许多重量级ORM工具慢。nHibernate速度惊人,主要是因为如果使用得当,它可以生成出色的SQL。遗憾的是,这种“正确使用”在nHibernate中很少明显。