插入动态更新 - linq to sql

时间:2010-02-04 06:54:10

标签: sql-server linq-to-sql dynamic-data

我正在开发一个动态数据应用程序,我正在尝试在更新请求期间执行插入RequestRevision(记录请求更改,这样的事情)

public partial class ProjectDataContext  
    {
        partial void UpdateRequest(Request instance)
        {                
            RequestRevision rv = new RequestRevision(Requests.GetOriginalEntityState(instance));                 
            this.ExecuteDynamicInsert(rv);                
            this.ExecuteDynamicUpdate(instance);
        }
    }

此代码错误“无法对实体执行操作,因为它未被跟踪更改。”

我添加了更改跟踪代码

public partial class ProjectStatusDataContext  
    {
        partial void UpdateRequest(Request instance)
        {
            bool tracking = ObjectTrackingEnabled;
            ObjectTrackingEnabled = true;
            RequestRevision rv = new RequestRevision(Requests.GetOriginalEntityState(instance));
            //instance.RequestRevisions.Add(rv); --not working 
            this.ExecuteDynamicInsert(rv);
            //this.RequestRevisions.InsertOnSubmit(rv); -- not working
            ObjectTrackingEnabled = tracking;
            this.ExecuteDynamicUpdate(instance);
        }
    }

现在我收到错误“从查询返回结果后,无法修改数据上下文选项。”

1 个答案:

答案 0 :(得分:0)

我使用sql触发器实现了这一点。在请求表上执行更新ID时会触发。