c# - 在 LINQ to SQL 中禁用触发器

标签 c# sql-server linq-to-sql

我们创建了一个带有触发器的表,每次有 UPDATE/INSERT 时,它都会更新其中的 ModifiedDate 字段。不过,对于我们应用中的特定交易,我们希望暂时禁用此触发器。

是否可以直接从 LINQ 执行此操作? (直接,不调用存储过程)

最佳答案

不使用生成的代码。您可以连接到存储过程,但这可能需要额外的工作。

对于“最后更新”的数据,可以 Hook 到 DataContext 的变更集,该变更集是在 SubmitChanges 方法期间获得的 - 因此可以设置为 UPDATE 提交的行的属性(可能基于接口(interface))。

我有一个类似的问题,我的审计触发器根据哪些列是 UPDATE 语句的一部分(通过触发器中的 UPDATE(ColumnName))表现不同,所以在类似的问题中,我需要将数据上下文破解为 always consider a specific column dirty .这可能有一些交叉。

但不行:我不认为你可以完全禁用触发器。

关于c# - 在 LINQ to SQL 中禁用触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2318269/

相关文章:

c# - 同步框架服务器到服务器同步

c# - 使用 XslCompiledTransform 的正确方法是什么?

sql - NOT LIKE 和 LIKE 不返回相反的结果

wpf - 如何为带有确定/取消按钮的数据绑定(bind) WPF 对话框设计支持数据类型?

c# - 在 GetType() 之后确定数组大小

c# - 将委托(delegate)传递给 Sort()

sql-server - 在 SQL Server 2008 R2 Express 上设置发布

sql - 为什么我不能在此查询中进行任何类型的连接?

database - 将接口(interface)而不是类映射到数据库表