我已经找到了大量关于如何在 Linq to SQL 中设置 Arithabort 的答案,但在 Linq to Entities 中没有找到任何答案。在 Linq to SQL 中,您可以这样做:
using (var conn = new SqlConnection(connectionString)){
cmd = conn.CreateCommand();
cmd.Connection.Open();
cmd.CommandText = "set arithabort on;";
cmd.ExecuteNonQuery(); // Line 5
using (var db = new MyDataContext(conn)) {
...
}
}
但是如果我做同样的事情,只是替换上面EntityConnection
的SqlConnection
代码片段,我会在第 5 行得到一个运行时错误:
查询语法无效。靠近标识符“arithabort”,第 1 行,第 5 列。
我猜这与 Linq2Sql 是为 SQL Server 硬连线的事实有关,而 EF 可以在其他数据库上工作。那么诀窍是什么?