代码之家  ›  专栏  ›  技术社区  ›  Gamlor Gabriele Ran

ADO.NET数据服务不更新

  •  0
  • Gamlor Gabriele Ran  · 技术社区  · 16 年前

    使用ADO.NET数据服务更新对象时出现问题。

    首先,我创建了一个可以加载和存储数据的服务。它是实现IUpDataTable接口的基本数据上下文。

    之后,我创建了一个简单的服务客户机。我刚刚在Visual Studio中使用“添加服务”引用创建了它。基本上,这项服务是可行的。我可以查询对象并存储新对象。但是我不能更新对象。

    这是我在客户端上的更新代码:

            var ctx =
                new TeamDataContext(new Uri("http://localhost:8637/TeamInfoService.svc"));
            var team = ctx.Teams.First();
            team.TeamName = "New Team Name";
            ctx.UpdateObject(team);
    
            ctx.SaveChanges();
    

    我的主要问题是,没有为我要更新的对象调用IUPDatable.setValue()。在不更新服务器上的对象的情况下,只调用IUPDatable.saveChanges()。

    当我创建一个新对象时,会在服务器上调用iupdatable.setValue来设置属性。

    我做错了什么?我的期望是错的吗?更新对象时是否应调用IUPDatable.setValue?或者我需要做额外的事情来做更新?

    编辑:我刚刚看了客户机和服务器之间的HTTP请求。客户端将发送包含更改的HTTP合并请求。但是,我仍然不知道为什么不存储更改。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Gamlor Gabriele Ran    16 年前

    我刚发现问题所在,现在觉得自己像个白痴。这是该项目的关键所在。当然,当您更改键时,它实际上找不到要更新的对象了。因此它无法更新属性。

    所以,永远不要尝试更新对象的键=)

    推荐文章