我必须为新闻频道建立一个网站..
请帮我决定使用哪种技术进行数据操作?
1)Linq to Entities 2)Linq to SQL 3)流利的NHibernate 4)ADO.Net
网站将基于ASP.Net MVC和C#。
主要问题:
1)应易于维护和扩展。
2)良好的表现
如果可能的话,请以示例表达您的观点..
由于
Chitresh
答案 0 :(得分:5)
Pro and cons:
LINQ To Entities
允许您添加另一个抽象层(实体),而不是直接映射到表(如LINQ to SQL中)。支持多个数据提供程序(不仅仅是SQL Server)。需要比LINQ to SQL更多的学习时间。提供工作单元的概念。中到高学习曲线。
LINQ to SQL
允许您轻松映射表格,存储过程等。提供工作单元概念。仅适用于SQL Server后端。易于实现,但如果db架构发生变化(从db到对象的单向同步),则需要dbml重建,因此有点难以维护。低 - 中等学习曲线。性能,...我认为Stack Overflow正在使用LINQ to SQL。您认为它的表现如何?有工作单位概念。
流利的NHibernate
无法发表评论......对此一无所知。如果它像NHibernate一样,应该非常灵活。可能是高学习曲线。有人在此纠正我......
ADO.NET (这里不讨论命名数据集......)
应该是最快的(没有抽象)。灵活,无论如何都要弯曲它。学习曲线低。非常基本,自己动手做。大部分时间我都会选择这条简单的项目。可以降低生产力。您可以通过代码生成来增强它,以获得一些生产力。
您的其他选择......也许是亚音速。
答案 1 :(得分:4)
NHibernate(流利的NHibernate)
Fluent NHibernate是一个帮助您映射实体的组件,以便NHibernate知道它将数据放在数据库中的哪个位置。如果您从未使用过NHibernate,那么知道如何映射和处理NHibernateSession会有点困难,但是有很多关于stackoverflow和其他地方的信息,例如S#arp,用于会话处理和Summer of NHibernate的例子。获得一些绘图课程。
答案 2 :(得分:3)
我会选择Linq to Entities或NHibernate(实际上,我会选择NHibernate,但这是我最熟悉的) - 和ADO.Net(但只是一点点)。
从NHibernate / Entities开始,尽你所能。一旦它开始运行,你会发现它非常有效。但是在某些情况下你需要更多的性能(你有一个很好的性能分析工具吗?)。对于这些情况,请直接在Ado.Net中编码(这应该占数据库调用的不到10%)。使用NHibernate,您可以使用NHibernate会话来获取连接对象。