【问题标题】:How to change update statement before executing: Linq2Sql Classes如何在执行前更改更新语句:Linq2Sql 类
【发布时间】:2011-10-10 02:40:59
【问题描述】:

我在一些使用 Linq2Sql 的表上实现了更改跟踪 (http://msdn.microsoft.com/en-us/library/cc280462.aspx)。

作为其中的一部分,我需要将以下 SQL 添加到生成的更新语句的开头。

DECLARE @originator_id varbinary(128);
SET @originator_id = CAST('SyncService' AS varbinary(128));
WITH CHANGE_TRACKING_CONTEXT (@originator_id) 
....generated statements....
....
....

我知道我可以创建存储过程并手动映射字段,但我想尽可能避免这种情况。

有人知道在 SubmitChanges() 上覆盖和编辑 SQL 的方法吗?

【问题讨论】:

  • 祝你好运。我会惊讶地发现 L2S 的可扩展性足以做到这一点。问题:您将如何使用 ADO.NET DataAdapter 执行此操作?如果您能弄清楚这一点,那么您也许能够弄清楚如何使用实体框架来做到这一点。

标签: linq-to-sql


【解决方案1】:

您可以通过在 LINQ to SQL 将调用的数据上下文上实现部分类来覆盖 Update 方法。只需给它签名:

partial void UpdateClassName(ClassName instance)

你也可以通过它通常使用的方式:

ExecuteDynamicInsert(instance);

不幸的是,没有机制只是为插入/更新/删除获取预期的 SQL(您可以在 DataContext 上使用 GetCommand 获取 SELECT 语句)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2014-07-12
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多