【发布时间】:2010-10-04 03:52:29
【问题描述】:
我在使用 ADO.NET 数据服务更新对象时遇到问题。
首先我创建了一个可以加载和存储数据的服务。它是实现 IUpdatable 接口的基本数据上下文。
之后,我创建了一个简单的服务客户端。我刚刚使用 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-Merge 请求。但是我仍然不知道为什么没有存储更改。
【问题讨论】:
标签: asp.net .net-4.0 wcf-data-services