Служба данных ADO.NET не обновляется - PullRequest
0 голосов
/ 22 июля 2010

У меня проблема с обновлением объектов с помощью ADO.NET Data Services.

Сначала я создал службу, которая может загружать и хранить данные.Это базовый контекст данных, который реализует интерфейс 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 с изменениями.Однако я до сих пор не знаю, почему изменения не сохраняются.

1 Ответ

1 голос
/ 22 июля 2010

Я только что выяснил, в чем проблема, и чувствую себя сейчас идиотом. Свойство TeamName было ключом объекта. Конечно, когда вы меняете ключ, он фактически не может найти объект для обновления больше. И поэтому он не может обновить свойство.

Итак, никогда не пытайтесь обновить ключ объекта =)

...