Linq to sql 如何在执行之前更改update语句:Linq2Sql类

Linq to sql 如何在执行之前更改update语句:Linq2Sql类,linq-to-sql,Linq To Sql,我已经实施了变更跟踪(http://msdn.microsoft.com/en-us/library/cc280462.aspx)在某些表上,我正在使用Linq2Sql 作为其中的一部分,我需要将下面的SQL添加到生成的update语句的开头 DECLARE @originator_id varbinary(128); SET @originator_id = CAST('SyncService' AS varbinary(128)); WITH CHANGE_TRACKING_CONTEXT

我已经实施了变更跟踪(http://msdn.microsoft.com/en-us/library/cc280462.aspx)在某些表上,我正在使用Linq2Sql

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

DECLARE @originator_id varbinary(128);
SET @originator_id = CAST('SyncService' AS varbinary(128));
WITH CHANGE_TRACKING_CONTEXT (@originator_id) 
....generated statements....
....
....
我知道我可以创建存储过程并手动映射域,但如果可能,我希望避免这种情况


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

您可以通过在数据上下文上实现LINQ to SQL将调用的分部类来重写更新方法。只要给它签名:

partial void UpdateClassName(ClassName实例)

您还可以通过以下方式了解它通常会执行的操作:

ExecuteDynamicInsert(实例)


不幸的是,没有一种机制可以让插入/更新/删除所需的SQL返回(您可以使用DataContext上的GetCommand获取SELECT语句)

祝您好运。我会震惊地发现L2S的可扩展性足以做到这一点。问题:如何使用ADO.NET DataAdapter实现这一点?如果您能够弄清楚这一点,那么您可能能够弄清楚如何使用实体框架来完成它。