我在一些使用Linq2Sql的表上实现了Change Tracking(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....
....
....
我知道我可以创建存储过程并手动映射fiels但我想尽可能避免这种情况。
有没有人知道在SubmitChanges()上覆盖和编辑SQL的方法?
答案 0 :(得分:1)
您可以通过在您的datacontext上实现LINQ to SQL将调用的部分类来覆盖Update方法。请给它签名:
partial void UpdateClassName(ClassName instance)
您还可以使用以下方式传递给正常情况:
ExecuteDynamicInsert(instance);
不幸的是,没有任何机制只是为了插入/更新/删除而获得预期的SQL(您可以在DataContext上使用GetCommand获取SELECT语句)