UpdateObject объектов службы данных Wcf - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть сущности Price и PriceGroup, и я хочу обновить обе сущности одновременно, как это: DataContext.AddObject ("Prices / PriceGroup", oEditPrices); DataContext.UpdateObject (oEditPrices); DataContext.SaveChanges (); * * +1001

giving me error

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
  <code></code>
  <message xml:lang="en-US">The request URI is not valid. Since the segment 'Prices' refers to a collection, this must be the last segment in the request URI. All intermediate segments must refer to a single resource.</message>
</error>

1 Ответ

0 голосов
/ 01 марта 2012

Первый параметр AddObject должен быть именем набора сущностей. Так что в нем нет косой черты (я знаю, что API не проверяет, что, к сожалению, должно). Это, вероятно, причина, почему это не удается (хотя я не могу проверить без трассировки HTTP).

Если вы вызываете AddObject, вам не нужно вызывать UpdateObject для того же экземпляра, это не будет иметь никакого эффекта.

Если цель состоит в том, чтобы добавить новый объект и связать его с существующим объектом, вы можете вызвать AddRelatedObject. В приведенном выше случае это будет что-то вроде:

DataContext.AddRelatedObject (существующиеPriceObject, "PriceGroup", newPriceGroup); DataContext.SaveChanges ();

Если вам нужно, чтобы это было выполнено как одна операция (вроде транзакции), вы можете передать опцию Batch вызову SaveChanges.

...