我正在配置一個ADO.NET DataService。ADO.NET DataService中的WriteReplace和WriteMerge有什麼區別?
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 Enumeration但我不能確定EntitySetRights.WriteMerge和EntitySetRights.WriteReplace
之間的區別,我發現下面的說明在Using Microsoft ADO.NET Data Services
WriteMerge: 在基於合併的更新的情況下,有效負載需要是實體,只需包含正在修改的屬性。 如果不包含某個屬性,則當前存在於服務器中的值將被保留。示例14顯示了用於更新上一個示例中插入的類別的有效內容。
WriteReplace: 對於基於替換的更新,有效負載需要是實體並且應該包含實體的所有屬性(不包括導航屬性)。 如果不包含屬性,則將該值在服務器上重置爲屬性的默認值。 PUT請求的此行爲映射到AtomPub RFC 5023中描述的行爲。示例13顯示了用於更新上一插入示例中插入的類別的有效內容。由於並非所有屬性都包含在有效負載中,因此未指定的屬性將由數據服務重置爲默認值。