代码之家  ›  专栏  ›  技术社区  ›  Sharique

在dymanic更新中插入-linq to sql

  •  0
  • Sharique  · 技术社区  · 14 年前

    我正在开发一个动态数据应用程序,在该应用程序中,我正在尝试在更新请求期间执行insert-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 回复  |  直到 13 年前
        1
  •  0
  •   Sharique    14 年前

    我使用SQL触发器来实现这一点。当对请求表执行更新ID时激发的。