2009-10-10 2 views
3

ADO.NET DataService를 구성하고 있습니다. 내가 Using Microsoft ADO.NET Data ServicesADO.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); 
    } 
    

    은 내가 EntitySetRights Enumeration에 대한 MSDN 페이지를 읽고 그러나 나는 EntitySetRights.WriteMerge 및

    EntitySetRights.WriteReplace

    사이의 차이를 식별 할 수 WriteMerge : 병합 기반 업데이트의 경우 페이로드는 엔터티 여야하며 수정되는 속성 만 포함하면됩니다. 는 속성이 포함되지 않은 경우, 서버에 현재 존재하는 값 보존한다. 예 14는 앞의 예에서 삽입 된 범주를 업데이트하는 데 사용되는 페이로드를 보여줍니다.

  • WriteReplace : 대체 기반 업데이트의 경우 페이로드는 엔티티 여야하며 엔티티의 모든 속성 (탐색 속성 제외)을 포함해야합니다. 속성이 포함되어 있지 않은 경우 이 값은 특성의 기본 값으로 서버에 다시 설정됩니다. PUT 요청에 대한이 동작은 AtomPub RFC 5023에 설명 된 것과 매핑됩니다. 예제 13에서는 이전 삽입 예제에서 삽입 된 범주를 업데이트하는 데 사용되는 페이로드를 보여줍니다. 모든 속성이 페이로드에 포함되는 것은 아니므로 지정되지 않은 속성은 데이터 서비스에서 기본값으로 재설정됩니다.

답변

1

ADO.NET 데이터 서비스 서버에서 WriteMerge는 엔터티의 개별 속성을 변경하는 것으로 정의합니다. (예 직원 인스턴스의 firstName을 변경한다.) 그리고 에 writeReplace를 다른 엔티티와 엔티티를 교체한다. 는 (예는 기본값으로 엔티티의 모든 속성을 재설정하여 직원을 변경 한 후 명시 적으로 속성을 설정합니다.) WriteMerge와

, 당신은에 writeReplace와 함께, 엔티티의 엔드 포인트에 을 병합 동사에 요청을 보낼 수 있습니다, PUT 동사와 함께 요청을 엔터티의 끝점으로 보낼 수 있습니다.

희망이 도움이됩니다.

관련 문제