Редактировать данные службы данных WCF через LINQ - PullRequest
0 голосов
/ 17 августа 2011

Я создал небольшую службу данных WCF, я могу добавлять / извлекать данные без проблем.

У меня есть набор на эту коллекцию "Домашнее хозяйство", со всеми правами:

config.SetEntitySetAccessRule("HouseHold", EntitySetRights.All);

Проблема в том, что я просто не могу редактировать:

HouseHold houseHold = entities.HouseHold.Where(h => h.IDHouseHold == varContainingAnExistingId).FirstOrDefault();
houseHold.LastName = "LastName" + DateTime.Now;
entities.SaveChanges();

У меня нет никаких исключений, мои данные просто не обновляются в базе данных.

Я что-то упустил? Я должен сделать что-то еще, чтобы сохранить свои изменения?

(Моя точка останова останавливается на объектах. SaveChanges (), поэтому я совершенно уверен, что она работает)

Большое спасибо

Редактировать, я только что увидел, что ApplyingChanges моего DataServiceContext имеет значение false, но это не свойство, которое я могу редактировать, есть ли ссылка с моей проблемой?

Ответы [ 2 ]

2 голосов
/ 17 августа 2011

Наконец-то я нашел решение, изучив методы контекста:

Нет отслеживания изменений с помощью службы данных wcf, вам нужно указать, что объект изменился.Эта проблема возникает только при изменении, потому что при добавлении / удалении мы должны вызывать специальные методы, которые автоматически устанавливают флаги изменений.

Так что в моем примере работает следующий код:

HouseHold houseHold = entities.HouseHold.Where(h => h.IDHouseHold == varContainingAnExistingId).FirstOrDefault();
houseHold.LastName = "LastName" + DateTime.Now;
entities.UpdateObject(houseHold);
entities.SaveChanges();

UpdateObject является важным изменением.

0 голосов
/ 17 августа 2011

Вы пытались включить DataServiceConfiguration.UseVerboseErrors?

http://msdn.microsoft.com/en-us/library/system.data.services.dataserviceconfiguration.useverboseerrors.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...