如何在Linq中将Arithabort设置为实体?
我已经找到了很多关于如何在Linq中将Arithabort设置为SQL的答案,但在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)) { ... } }
但是如果我做同样的事情,只是在上面的代码片段中用SqlConnection
替换EntityConnection
,我在第5行得到一个运行时错误:
查询语法无效。 标识符’arithabort’附近,第1行,第5列。
我猜它与Linq2Sql硬连线的事实有关,而EF可以在其他数据库上工作。 那么诀窍是什么?
SqlConnection
不是特定于linq-to-sql或EF,您仍然可以使用EF代码。 但是您必须创建一个接收SqlConnection的EntityConnection。
EntityConnection.CreateCommand
创建一个EntityCommand
,它将Entity SQL作为命令文本,而不是原始SQL命令。
另一种方法是使用上下文的ExecuteStoreQuery
命令(ObjectContext)或context.Database.ExecuteSqlCommand
(DbContext)。
- c#中的接口属性副本
- 在WebAPI操作方法中抛出HttpResponseException,返回空200响应
- EntityFramework.dll中出现“System.InvalidOperationException”类型的exception,但未在用户代码中处理
- 如何将对象序列化为XDocument?
- 自定义DbContext生成器
- 我可以将System.Core.dll(.net 3.5)的引用添加到.net 2.0应用程序并使用它
- 无法加载工具箱项。 它将从工具箱中删除
- Sequence包含多个匹配元素 – 使用Entiity Framework添加项目
- 具有一个固定动作的MVC路由和具有多个可选参数的控制器