繁体   English   中英

ADO.NET更新不起作用

[英]ADO.NET Update not working

你们其中一个可爱的人能否就此代码为什么不起作用或执行它的更好/正确方式阐明一些信息...

CandidDomainService db = new CandidDomainService();

GlobalValuesTable newInstanceId =
    db.GetGlobalValuesTables().Single<GlobalValuesTable>(gId => gId.RowId == 1);

newInstanceId.CurrentTestInstance++;
db.UpdateGlobalValuesTable(newInstanceId);

它在db.Update null异常。 我正在使用生成的添加,更新,删除和获取。 当未对实体模型进行任何更改时,将异常描述为抛出。

谢谢!

编辑:

这是生成的更新代码...

    public void UpdateGlobalValuesTable(GlobalValuesTable currentGlobalValuesTable)
    {
        this.ObjectContext.GlobalValuesTables.AttachAsModified(currentGlobalValuesTable, 
            this.ChangeSet.GetOriginal(currentGlobalValuesTable));
    }

这是引发错误的原因,更何况它实际上并未更新。 我也尝试用此代码代替它...

    public void UpdateGlobalValuesTable(GlobalValuesTable d)
    {
        var newInstanceId =
            this.ObjectContext.GlobalValuesTables.Single<GlobalValuesTable>
                (gId => gId.RowId == 1);

        // Update the current instance ID
        newInstanceId.CurrentTestInstance++;

        this.ObjectContext.AcceptAllChanges();

      //this.ObjectContext.GlobalValuesTables.Context.AcceptAllChanges();
      //this.ObjectContext.GlobalValuesTables.Context.AttachAsModified(newInstanceId);
    }

与大多数事情一样,在调用它之前,我会先检查它是否存在。

if (newInstanceId)
{
newInstanceId.CurrentTest Instance++;
db.UpdateGlobalValuesTable(newInstanceId);
}
else 
{
//Do something here to notify you.
}

至少应该使您能够进行更好的调试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM