2010-04-02 1 views
0

Бывают ситуации, когда я хочу только обновить конкретное поле одного объекта в базе данных.Обновление одного поля из одного объекта с помощью ria-сервисов

Я загрузил сущности этого типа в моем SilverLight приложения, и я знаю, что они постоянно меняются на сервере ... но есть одна область, которая должен быть установлен SilverLight клиента на сервер ... будет только читать. Как я могу просто отправить новые данные для этого поля на сервер?

Пример объекта, называемого «TextField». У меня есть список TextFields, загружаемых в приложение silverlight , и каждый раз время от времени пользователь обновляет свойство Preload (string) объекта, которое должно возвращаться на сервер, не изменяя ничего на сервере.

Я попытался добавить простой метод SetPreloadText (...) в DomainService, но просто заставляет Silverlight сбой с некоторым нечетным кодом ошибки.

Есть ли способ этого? Я работаю против идеи Silverlight здесь? Я действительно не хочу отправлять весь объект обратно, потому что знаю, что в любой момент времени версия на клиенте, скорее всего, устареет. (что подходит для этого конкретного приложения)

ответ

0

Я думаю, что SetPreloadText (..) chrashes, потому что RIA Services использует специальные соглашения об именах, такие как insert/update/delete для crud, если вы не укажете, что он будет именоваться другим.

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

в вашем методе обновления. При этом вы можете точно отфильтровать то, что изменилось ...

надеюсь, что это помогает ...

+0

Метод AttachAsModified недоступен ... не в сервисе, а не на клиенте, какие-либо идеи? – TimothyP

+0

Вы используете бета-версию SL3 и RIA, или SL4 и RIA-сервисы RC? Если вы используете RC, AttachAsModified был перемещен в набор объектов, так что это будет.Context.TextFields.AttachAsModified –

+0

SL4 RC, я посмотрю – TimothyP

0

Теперь вы должны использовать это:

this._yourENtitySet.Value.ApplyCurrentValues(modified); // The one you received 
    this._yourENtitySet.Value.ApplyOriginalValues(original); /// The original one 

Надежда эта помощь!