В чем разница между WriteReplace и WriteMerge в ADO.NET DataService? - PullRequest
3 голосов
/ 10 октября 2009

Я настраиваю ADO.NET DataService.

public static void InitializeService(IDataServiceConfiguration config)
{
    // config.UseVerboseErrors = true;
    // TODO: set rules to indicate which entity sets and service operations are
    //       visible, updatable, etc.
    // Examples:
    config.SetEntitySetAccessRule("User", EntitySetRights.WriteMerge);
    config.SetEntitySetAccessRule("User", EntitySetRights.WriteReplace);
}

Я прочитал страницу MSDN для перечисления EntitySetRights , но не могу определить разницу между EntitySetRights.WriteMerge и EntitySetRights.WriteReplace

Я нашел следующее объяснение на Использование Microsoft ADO.NET Data Services

  • WriteMerge: В случае обновлений на основе слияния, полезная нагрузка должна быть сущностью и должна содержать только изменяемые свойства. Если свойство не включено, то значение, которое в данный момент присутствует на сервере, будет сохранено . В примере 14 показана полезная нагрузка, используемая для обновления категории, вставленной в предыдущем примере.

  • WriteReplace: В случае обновлений на основе замены, полезная нагрузка должна быть сущностью и должна содержать все свойства сущности (не включая свойства навигации). Если свойство не включено, значение сбрасывается на сервере до значения по умолчанию для свойства . Это поведение для запросов PUT соответствует тому, что описано в AtomPub RFC 5023. Пример 13 показывает полезную нагрузку, используемую для обновления категории, которая была вставлена ​​в предыдущем примере вставки. Так как не все свойства включены в полезную нагрузку, служба данных не вернет их значения по умолчанию.

Ответы [ 2 ]

1 голос
/ 28 октября 2009

На сервере ADO.NET Data Services мы определяем WriteMerge как изменение отдельных свойств объекта. (Примером является Изменение первого имени экземпляра сотрудника.) И WriteReplace как замена сущности другой сущностью. (Примером является Изменение сотрудника путем сброса всех свойств сущности на значения по умолчанию и затем явной установки свойств.)

С WriteMerge вы можете отправить запрос с глаголом MERGE на конечную точку сущности, с помощью WriteReplace вы можете отправить запрос с глаголом PUT на конечную точку сущности.

Надеюсь, это поможет.

1 голос
/ 12 октября 2009

WriteMerge-Merge обновления разрешены. WriteReplace-Замена разрешена

Пожалуйста, посмотрите на эту ссылку. http://msdn.microsoft.com/en-us/magazine/dd569758.aspx текст ссылки

...