【发布时间】:2008-08-18 23:50:25
【问题描述】:
Linq To SQL 或实体框架都很好地与 SQL Server 2005 集成。
SQL Server 2008 规格表承诺更好的集成 - 但我看不到。
有哪些示例可以说明在与 2008 服务器通信时可以执行 Linq 方式而在与 SQL Server 2005 通信时无法执行的操作?
【问题讨论】:
标签: linq sql-server-2005 sql-server-2008
Linq To SQL 或实体框架都很好地与 SQL Server 2005 集成。
SQL Server 2008 规格表承诺更好的集成 - 但我看不到。
有哪些示例可以说明在与 2008 服务器通信时可以执行 Linq 方式而在与 SQL Server 2005 通信时无法执行的操作?
【问题讨论】:
标签: linq sql-server-2005 sql-server-2008
这个marketing link声称
“使用 LINQ to SQL 直接针对 Microsoft SQL Server 数据库编写数据访问代码。”
这基本上是不真实的。
Linq To SQL 是将查询理解翻译成表达式树,翻译成 SQL,由查询优化器优化,然后针对 SQL Server 数据库运行。 “直接”feh。
【讨论】:
存在对 SQL 2005 错误解释的连接集进行分页的问题。
var orders = (
from c in Customers
from o in c.Orders
select new {c, o}
).Skip(10).Take(10).ToList();
LINQ 针对连接集生成一个 ROW_Number。 SQL2005 从该代码生成一个错误的计划。这是discussion的链接。
Edit#2:我想澄清一下,我不知道 SQL2008 解决了这个问题。我只是充满希望。
【讨论】:
它完全支持新的数据类型。哈哈。除了优化查询的可能性(如合并命令等)之外,你得到了我。
【讨论】:
无论如何,我猜大部分都必须在服务器上完成。他们可能优化了查询执行,因为我不知道除了新类型之外的差异。
【讨论】:
除非 LINQ 公开新的 MERGE 语句,否则不会。
引擎之间几乎没有有效的区别,尤其是从 ORM/客户端的角度来看
【讨论】: