我们创建了一个带有触发器的表,每次有 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/