我们刚刚开始使用.NET 3.5和MSSQL 2008开发Web门户的项目。提出了一个问题,即处理数据访问的合理选择涉及成千上万的记录,最多可达数十万?我在某个地方看到了一个将ADO.NET,EF和LINQ与SQL进行比较的表格,看起来LINQ to SQL是平均速度最慢的,但ADO.NET在大型操作中被扼杀。
顺便问一下,您对大规模使用NHibernate的想法是什么?
答案 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
是用于比较框架和优化查询的非常有用的工具。如果你还没有,你应该检查一下。