默认情况下,对于 OLEDB 连接,SQL 连接选项 ARITHABORT 是关闭的,我假设 Linq To SQL 正在使用它。但是我需要它打开。原因是我的数据库包含一些索引视图,如果连接没有 ARITHABORT ON,则对属于索引视图一部分的表的任何插入/更新/删除操作都会失败。如果使用 WITH(NOEXPAND) 提示(您必须在 SQL 标准版中使用它来获得索引视图的性能优势),即使选择索引视图本身也会失败。
数据上下文中是否有我可以指定我想要此选项的地方?或者我可以在代码中的某个地方做到这一点?
我已经管理了一个笨拙的解决方法,但我不喜欢它....我必须为每个选择/插入/更新/删除操作创建一个存储过程,并且在这个过程中首先运行 SET ARITHABORT ON,然后执行另一个过程其中包含实际的选择/插入/更新/删除。换句话说,第一个 proc 只是第二个的包装器。将 SET ARITHABORT ON 放在选择/插入/更新/删除代码上方是行不通的。