2012-04-26 4 views
0

매우 간단한 질문 ... 프로그래머가 관찰 가능 컬렉션의 변경 사항을 해당 객체 컨텍스트 (EF4)와 동기화하는 가장 일반적인 방법은 무엇입니까? 필자의 경우 SQL EF4를 ORM으로 사용하는 SQL CE 4.0 db가 있으며 데이터베이스 (MVVM)에서 객체를 가져 오는 관찰 가능한 컬렉션을 사용하고 있습니다.EF4 컨텍스트를 사용하는 ObservableCollection 동기화

기본적으로 관찰 가능한 컬렉션을 조작 할 때 객체 컨텍스트를 추가, 제거 및 수정하는 코드를 설정하는 가장 논리적 인 방법을 알고 싶습니다.

건배

답변

0

가장 간단한 방법은이 INotifyCollectionChanged를 구현하는 사용자 지정 컬렉션 클래스를 만드는 것입니다 달성하기 위해. 이렇게하면 컬렉션이 변경 될 때 엔티티를 추가하고 삭제할 수 있습니다. 엔터티를 업데이트하는 것은 컬렉션 클래스의 역할이 아니라 각 엔터티에 대한 모델 래퍼 또는 뷰 모델의 기능입니다.

1

ObservableCollection의 CollectionChanged 이벤트에 가입하고 EF 논리를 추가하여 데이터베이스 모델에 삽입/삭제를 저장할 수 있습니다.

+0

이 경우 데이터베이스에 대한 외부 업데이트는 어떻게 처리합니까? –

+0

그것은 조금 더 도전적 일 것입니다. 디스패치 타이머와 같은 새로운 레코드를 컬렉션으로 다시 가져올 수있는 업데이트를 확인하는 또 다른 메커니즘이 필요합니다. 이것을 당신의 물건에 굽히고 싶다면, 실제로 자신 만의 컬렉션을 만들어야합니다. 초기 질문은 ObservableCollection 만 업데이트하는 것처럼 들렸다. – Tyrsius

+0

ObservableCollection에 엔티티를 추가하면 CollectionChanged 이벤트가 데이터베이스를 변경합니다. 따라서 데이터베이스가 제약 조건 또는 기타 이유로 작업을 거부하면 ObservableCollection에서 작업을 취소해야합니다. –

관련 문제