经典的ADO.NET或实体框架更适合大规模数据库事务?

时间:2010-11-16 19:27:55

标签: .net entity-framework ado.net

我们刚刚开始使用.NET 3.5和MSSQL 2008开发Web门户的项目。提出了一个问题,即处理数据访问的合理选择涉及成千上万的记录,最多可达数十万?我在某个地方看到了一个将ADO.NET,EF和LINQ与SQL进行比较的表格,看起来LINQ to SQL是平均速度最慢的,但ADO.NET在大型操作中被扼杀。

顺便问一下,您对大规模使用NHibernate的想法是什么?

3 个答案:

答案 0 :(得分:3)

当它归结为它时,一切都将使用ADO.NET。

我可能会使用Repository模式编写一个Proof of Concept应用程序(一个存储库使用Entity Framework,另一个存储库使用原始ADO.NET)。

运行一些测试,看看哪种方法更适合您的需求。

我会告诉你,使用vanilla ADO.NET可以更好地控制对数据库实际执行的内容。

答案 1 :(得分:0)

对于MS SQL,Linq2Sql和EF都将源代码转换为T-Sql。速度根据它们转换为sql的方式而有所不同。记住,你总是可以使用任何一个来调用自己的sql(s-procs),这样就可以更好地控制对你的商店执行什么操作,以防生成的sql表现不佳。

答案 2 :(得分:0)

StackOverflow.com 使用LINQ-to-SQL。我猜他们现在正在处理数十万条记录。你的团队可以接受SO的表现吗?

正如其他人所说的那样。无论如何,它最终都是一样的,T-SQL。 ORM是关于功能编程和软件设计的。始终可以对基础查询进行优化。仅仅因为某人的测试表明它在特定情况下表现更好而使用香草ADO.NET对我来说似乎是一个不好的理由。

LINQPad是用于比较框架和优化查询的非常有用的工具。如果你还没有,你应该检查一下。