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