2013-09-21 1 views
1

RIA 서비스를 사용하여 데이터베이스에 연결하는 클라이언트 Silverlight 응용 프로그램이 있습니다. 엔티티를 관리하는 데 EntitySet 대신로드 된 엔티티 및 컨텍스트 목록이 포함 된 로컬 캐시가 있습니다. 항상 공백이므로 동일한 데이터베이스 테이블에 여러 논리적 뷰가있는 여러 쿼리를 만들고 더 좋은 새로 고침 (변경 사항에 대한 서버 트리거 제거 및 처리 지원)을 허용합니다.RIA 서비스에서 수정 된 객체 첨부

내 문제는 엔터티가 변경되어 EntitySet에 연결하고 해당 변경 내용을 서버에 제출하려는 경우 Attach 기능 부착 개체는 unmodified입니다.

내 질문은 입니다.의 클라이언트 측에 modified이라는 엔티티를 어떻게 첨부 할 수 있습니까? 서버 측에서 수행하는 방법을 알고 있지만 실버 라이트에서 수행해야합니다.

+0

먼저 엔티티를 연결 한 다음 수정하십시오. 엔티티가 Modified로 변경되어야합니다. – Jehof

답변

0

컨텍스트에서 --Attach - 메서드를 사용하십시오. 이렇게하면 엔티티를 컨텍스트에 다시 "첨부"할 수 있으므로 컨텍스트가 엔티티의 변경 사항을 추적 할 수 있습니다. save 명령을 실행하면 컨텍스트가 적절한 명령을 실행하여 서버의 엔티티를 CRUD합니다.

먼저 엔티티를 연결 한 다음 EntityState를 Modified로 설정하십시오.

예 - 대답하기 전에 전체 질문을 읽어야합니다! :)

+0

답변을 주셔서 감사 합니다만, 읽기 전용 속성 인 실버 라이트 EntityState – BigBoss

0

문제를 해결하기 위해 Entity 클래스의 IEditableObject 인터페이스를 사용해 볼 수 있습니다. 인터페이스는 명시 적으로 Entity에서 구현되므로 인스턴스를 인터페이스에 캐스트해야합니다.

MyEntity entity = new MyEntity(); 
MyEntitySet.Attach(entity); 

((IEditableObject)entity).BeginEdit(); 
// edit the properties of the entity; 
((IEditableObject)entity).EndEdit(); 
관련 문제