Linq to sql linq到实体vs fluent nhibernate vs linq到sql(帮助)

Linq to sql linq到实体vs fluent nhibernate vs linq到sql(帮助),linq-to-sql,fluent-nhibernate,linq-to-entities,Linq To Sql,Fluent Nhibernate,Linq To Entities,我必须为新闻频道建立一个网站 请帮助我决定使用哪种技术进行数据操作 1) Linq到实体 2) Linq到SQL 3) 流畅的纤维酸盐 4) ADO.Net 网站将基于ASP.NETMVC和C 主要问题: 1) 应易于维护和扩展 2) 好成绩 如果可能的话,请用一个例子来表达你的观点 谢谢 Chitresh的利弊: LINQ到实体 允许您添加另一层抽象(实体),而不是直接映射到表(如LINQ到SQL)。支持多个数据提供程序(不仅仅是SQL Server)。需要比LINQ to SQL多一点的学习

我必须为新闻频道建立一个网站

请帮助我决定使用哪种技术进行数据操作

1) Linq到实体 2) Linq到SQL 3) 流畅的纤维酸盐 4) ADO.Net

网站将基于ASP.NETMVC和C

主要问题:

1) 应易于维护和扩展

2) 好成绩

如果可能的话,请用一个例子来表达你的观点

谢谢

Chitresh的利弊:

LINQ到实体

允许您添加另一层抽象(实体),而不是直接映射到表(如LINQ到SQL)。支持多个数据提供程序(不仅仅是SQL Server)。需要比LINQ to SQL多一点的学习时间。提供工作单元概念。中高学习曲线

LINQ到SQL

允许您轻松映射表、存储过程等。提供工作单元概念。仅在SQL Server后端工作。易于实现,但如果数据库模式发生更改(从数据库到对象的单向同步),则需要重新生成dbml,因此维护起来有点困难。低-中学习曲线。演出我认为堆栈溢出是使用LINQ到SQL。你认为它的表现如何?有工作单元的概念

流利的NHibernate

无法评论。。。对此一无所知。如果它有点像NHibernate,应该是非常灵活的。可能是高学习曲线。有人纠正我这个

ADO.NET(此处不讨论命名数据集…)

应该是最快的(无抽象)。柔韧,随意弯曲。低学习曲线。非常基本,自己做每件事的方法。大多数时候,我走这条路线是为了一个简单的项目。这会降低生产率。您可以通过代码生成来增强它,以获得一些生产力

你的其他选择。。。可能是亚音速。

NHibernate(流畅的NHibernate)


Fluent NHibernate是一个帮助您映射实体的组件,这样NHibernate就知道它将把数据库中的数据放在哪里。如果您从未使用过NHibernate,那么知道如何映射和处理NHibernate会话可能会有点困难,但是这里有很多关于stackoverflow和其他地方的信息,比如会话处理示例,以及获取映射方面的一些经验。

我会选择Linq to Entities或NHibernate(实际上,我会选择NHibernate,但这是我最熟悉的)——和ADO.Net(但只是一点点)


从使用NHibernate/Entities开始,尽你所能。一旦它启动并运行,你会发现它非常高效。但在某些情况下,你需要更高的性能(你有好的分析工具吗?)。对于这些情况,请直接在Ado.Net中编写它们(这应该占数据库调用的不到10%)。使用NHibernate,您也可以使用NHibernate会话为您获取连接对象。

NHibernate确实有一点学习曲线,但Fluent NHibernate很好地缓解了这一点,并使您远离所有这些XML文件。当您需要ADO.NET时,一个很好的例子是将.csv文件直接加载到使用大容量复制的数据库,或任何类型的大容量复制。LINQ to Entities不支持大容量复制,而且速度非常慢。@Gravitas:这适用于任何ORM。如果您处理大容量问题(一次1000行),ORM不是解决方案。ORM应该与“为我获取此记录以及处理它所需的所有从属对象”,或“为我获取此查询的第二组20条记录”。