默认情况下,SQL连接选项ArithaBort不适用OLEDB连接,我认为Linq to SQL正在使用。但是我需要它。原因是我的数据库包含一些索引视图,并且如果连接没有算法,则针对索引视图的一部分的表的表格/更新/删除操作。如果使用(novend)提示(您必须在SQL标准版中使用),即使对索引视图本身进行选择,即

我可以指定我想要此选项的数据上下文中的某个地方吗?还是在代码中我可以做的地方?

我已经管理了一个笨拙的解决方法,但是我不喜欢它。...我必须为每个选择/插入/update/delete操作创建一个存储过程,在此Proc首次运行中,然后exec exec exec又有另一个proc其中包含实际的选择/插入/update/delete。换句话说,第一个Proc只是第二个Proc。仅将设置ArithaBort放在上方的选择/插入/Update/Delete代码上方。

有帮助吗?

解决方案

我最终要做的是在自己的“助手”类中编写自己的方法来创建DataContext并每次需要DataContext时使用此方法,例如

      Dim conn As New SqlConnection(Config.GetConnectionString("SiteSqlServer"))
      Dim command As New SqlCommand("set arithabort on;", conn)
      command.Connection.Open()
      command.ExecuteNonQuery()
      Dim dc = New SiteDataContext(conn)

这里的想法是使用将连接作为参数的DataContext构造函数。我创建并打开一个SQLConnection,在其上运行“ Set Arithabort ...”,然后将其传递给DC(信用转到海报 这里).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top