如何控制 Linq to SQL 发出的“SET”语句
Posted
技术标签:
【中文标题】如何控制 Linq to SQL 发出的“SET”语句【英文标题】:How do you control the "SET" statements emitted by Linq to SQL 【发布时间】:2009-04-21 18:27:10 【问题描述】:有什么方法可以控制 Linq to SQL 发出的“SET”语句?我在 SQL 分析器中看到这些 SET 选项来自 Linq 到 SQL,结果表明“set arithabort off”导致我们的一个 procs 需要 45 秒而不是
-- network protocol: TCP/IP
set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set cursor_close_on_commit off
set implicit_transactions off
set language us_english
set dateformat mdy
set datefirst 7
set transaction isolation level read committed
谢谢, 乔恩
【问题讨论】:
【参考方案1】:与其使用默认构造函数或传递连接字符串,不如创建自己的IDbConnection
,设置所需的任何选项,然后将其传递给DataContext
的构造函数。
【讨论】:
我没有在 SqlConnection 对象中看到将 arithabort 设置为 ON 的选项。有什么想法吗? 您应该能够将这些选项中的任何一个作为 SqlCommand.ExecuteNonQuery() 执行 没问题!如果这回答了您的问题,请不要忘记将其标记为答案! :) EF4有什么办法可以做到这一点,我一直在寻找方法,但还没有多少运气。 @Grubsnik:因为这个问题是关于 L2S 而你的问题是关于 EF4,所以请将它作为一个新问题发布;这样你也会得到更多的关注!以上是关于如何控制 Linq to SQL 发出的“SET”语句的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 LINQ to SQL 连接到 SQL Server?