在 EF4 中控制 ArithAbort

2023-12-02

我们的 EF4 MVC 解决方案存在一些性能问题。我们已经能够追踪到 ArithAbort 在所有与数据库的连接之前被设置为关闭,现在我们正在尝试强制它保持“打开”状态。

我们研究过:如何控制 Linq to SQL 发出的“SET”语句

但 EF4 似乎会在每次查询之前重置连接,因此这不起作用。

到目前为止,我们已经尝试在给定查询之前“设置 ArithAbort on”,但没有成功。我们也尝试过走很长的路,在我们设置的地方建立一个新的连接,但仍然没有成功。

那么,有人知道如何在对数据库进行任何 linq 查询之前对其进行设置吗?

更改数据库设置不是一个选项。

编辑: 根据 Andiihs 的建议,我尝试了包装器解决方案,并将以下代码行添加到 EFCachingCommand 类中

    protected override DbDataReader ExecuteDbDataReader(CommandBehavior behavior)
    {
        if (this.WrappedCommand.CommandType == System.Data.CommandType.Text)
        {
            this.WrappedCommand.CommandText = "set arithabort on; " + this.WrappedCommand.CommandText;
        }

这实质上确保了任何 Linq-sql 调用都以正确的 set 语句为前缀。

我还必须补充:

    DbFunctionCommandTree functionTree = commandTree as DbFunctionCommandTree;
    if (functionTree != null)
    {
        this.IsModification = true;
        return;
    }

到EFCachingCommandDefinition 中的GetAffectedEntitySets 函数,以便使其能够与存储过程调用一起正常工作。


EF 提供了在 Entity Connection 和 SQL.Data.Client 之间插入 Wrapping Provider 的功能 - 请参阅http://code.msdn.microsoft.com/EFProviderWrappers and http://blogs.msdn.com/b/jkowalski/archive/2009/06/11/tracing-and-caching-in-entity-framework-available-on-msdn-code-gallery.aspx

现在我承认这更像是一个线索而不是答案 - 但也许您可以在此时插入相关集?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 EF4 中控制 ArithAbort 的相关文章

  • 查找导航属性的相关 FK 属性

    在运行时 我想查找 EntityObject 是否也具有给定 NavigationProperty 的外键属性 我在下面的两个步骤中做到了这一点 我想这将需要一些元数据查询 我不确定如何测试元数据类是否指向特定 EntityObject 类
  • ssas维度处理键未找到错误

    我有一个奇怪的情况 我正在尝试处理维度 数据源是 MSSQL 当我尝试处理这个维度时 我收到此错误 OLAP存储引擎中的错误 处理时找不到属性键 表 application 列 Full Name 值 Mr Peter McDonald 该
  • 如何从时区名称获取时区偏移量

    我有一个时区名称 例如America Vancouver保存在 SQL Server 数据库中 我想从 SQL 中的时区名称获取 UTC 偏移量 例如America Vancouver has 08 00抵消 那么如何用 SQL 编写查询呢
  • SQL中等连接和内连接的区别

    我有 2 个表 名为 table123 and table246 table123 列 ID Dept ID 名 Surname Salary Address table246 列 Dept ID 部门名称 我想找到每个部门工资最低的员工列
  • 查找 SQL Server 中表的 B 树高度

    由于数据库数据以B Tree的形式组织在8k页中 对于PK信息也是如此 数据库中的每个表都应该可以计算B Tree的高度 从而揭示达到某些数据需要多少次跳跃 由于行大小和 PK 大小都非常重要 因此很难计算 因为例如varchar 250
  • 在 Silverlight 中使用 RIA 服务时如何扩展实体?

    在我的 Silverlight 解决方案的服务器端 我有 2 个项目 提供 Silverlight 页面的网站 实体框架数据访问层 我有一个具有 FirstName 和 LastName 属性的实体 我想添加一个可从 Silverlight
  • 从存储过程中的动态 SQL 获取结果

    我正在编写一个存储过程 需要在过程中动态构造 SQL 语句以引用传入的表名称 我需要让这个 SQL 语句返回一个结果 然后我可以在整个过程的其余部分中使用该结果 我尝试过使用临时表和所有内容 但我不断收到一条消息 提示我需要声明变量等 例如
  • 帮助我了解实体框架 4 延迟加载的缓存

    我在实体框架 4 0 中遇到了一些意想不到的行为 我希望有人可以帮助我理解这一点 为了解决这个问题 我使用了 Northwind 数据库 我还使用默认的代码生成器 不是 poco 或自我跟踪 我希望每当我查询框架的上下文时 如果我尚未获取这
  • MSSQL 选择前 10 名获胜分数,包括并列以及每个类别中至少一个

    我使用以下语句获得了一些帮助 找到了前 10 名分数 包括并列条目 select T EntryID T CategoryID T Score from select EntryID CategoryID Score dense rank
  • 如何获取 dm_exec_sql_text 的参数值

    我正在运行以下语句来查看 sql server 中正在执行哪些查询 select from sys dm exec requests r cross apply sys dm exec sql text r sql handle where
  • 从另一台计算机连接到 SQL Server

    我正在使用 C 连接到网络上另一台计算机上的 SQL Server 但收到一条异常消息 用户 用户名 登录失败 但是服务器日志状态表明使用 Windows 身份验证的用户连接成功 我的连接字符串是 Data Source ipaddress
  • 实体框架 - sql server 表中未设置默认值

    SQL Server 2005 数据库表有一列 createdon 其默认值设置为 getdate 我正在尝试使用实体框架添加记录 createdon 列未更新 我是否错过了实体框架中的任何属性 请提出建议 这是实体框架存在的少数问题之一
  • 如何每行输出 7 条记录,一周中的每一天输出 1 条记录?

    试图在这里节省大量的数据输入 我目前有以下输出 CONTID DESCR 001 Area 1 001 Area 2 001 Area 3 我想要做的是为每个 DESCR 区域 输出 7 条记录 一周中的每一天输出 1 条记录 相应地为 0
  • 实体框架 4:成功保存时的 ObjectContext 事件

    有没有什么好的方法可以检测到ObjectContext更改实际上已提交 SavingChanges发生在进入数据存储之前 但我还需要一种方法来知道这些更改是否实际提交 提前致谢 约翰 Update 我拥有的是代码优先的 DbContext
  • T-SQL - 是否有(免费)方法来比较两个表中的数据?

    I have table a and table b SQL Server 2008 两个表具有完全相同的架构 出于本问题的目的 请考虑table a 我的本地开发表 table b 实时表 我需要创建一个 SQL 脚本 包含UPDATE
  • 在 ms-sql 中查找最近的位置

    我将这些参数发送给我的脚本 纬度 41 0186 经度 28 964701 它是示例 我想找到最近的位置的名称 这个怎么做 查询必须更改代码的位置 sql查询 SELECT Name FROM Location WHERE Latitude
  • 从存储过程执行SQL Server代理作业并返回作业结果

    需要有一个存储过程来调用 SQL Server 代理作业并返回作业是否成功运行 到目前为止我已经 CREATE PROCEDURE MonthlyData AS EXEC msdb dbo sp start job N MonthlyDat
  • SQL:从多个表中获取 USER 表中用户记录的计数。最好的方法是什么?

    我有4个SQL Server 2008版本 表 1 USER to store user information Fields UserId UserName 2 FILES to store files uploaded by user
  • 如何使用Entity Framework Code First CTP 5存储图像?

    我只是想弄清楚是否有一种简单的方法可以使用 EF Code First CTP 5 存储和检索二进制 文件 数据 我真的很希望它使用 FILESTREAM 类型 但我真的只是在寻找某种方法让它工作 我总是创建另一个类 例如ProductIm
  • 更新标记实体日期时间属性不变时

    我的域模型中有此实体服务 具有两个日期时间类型属性entrydate 和updatedon 当编辑视图中的用户进行任何更改并提交表单时 我希望将回发 修改对象的entrydate属性标记为未更改 以便在执行更新时不能覆盖entrydate

随机推荐