1

EF (Self Tracking Entities)가있는 EF를 사용하여 응용 프로그램을 개발하고 있습니다. STE는 지연로드를 지원하지 않으므로 외래 키를 변경 한 후 엔티티의 탐색 속성 업데이트를 개발하는 데 선호되는 방법 또는 모범 사례는 무엇입니까? 이 여기에 설명 : 당신이 외래 키 속성을 설정하여 객체 사이의 관계를 변경하면셀 태킹 개체 - 탐색 속성을 업데이트하는 방법?

http://msdn.microsoft.com/en-us/library/ff407090.aspx

은 "참조 탐색 속성이 클라이언트의 해당 주요 기업에 동기화 null로 설정되지 않고 후. 그래프가 개체 컨텍스트에 첨부됩니다 (예를 들어, ApplyChanges 메서드를 호출 한 후) 외래 키 속성과 탐색 속성이 동기화됩니다. "

이 문제

여기에 해결되었습니다

http://blogs.msdn.com/b/diego/archive/2010/10/06/self-tracking-entities-applychanges-and-duplicate-entities.aspx

그러나 이것은 정말이 할 수있는 가장 좋은 방법은? 이 한계를 극복하기 위해 여러분이 사용했거나 생각할 수있는 몇 가지 방법은 무엇입니까? 당신이 레코드에 변경을 가할 때마다 네가 datagrids에 네비게이션 속성을 표시하고 null로 설정하도록하는 것이 어렵다면 누구나 자기 추적 엔티티를 사용하고 있다고 믿는 것은 어렵다. 이런 일이 발생하면 내 응용 프로그램에서 펑키하게 보입니다. 물론 저장 후 서버로 돌아가서 이러한 속성을 업데이트 할 수 있지만 서버에 저장하라는 호출을하기 전까지는 데이터 맵에 null 탐색 속성이 많이 포함됩니다.

예를 들어, 내 사용자가 레코드 양식을 선택하고 아래 양식에서 편집하는 마스터 세부 시나리오가 있습니다. 내 콤보 상자에 바인딩 된 외래 키를 변경할 때 DataGrid의 탐색 속성에 바인딩 된 레코드는 null로 설정됩니다. 외래 키가 변경되면이 동작을 피하고 탐색 속성을 업데이트하려면 어떻게해야합니까? 내가 외래 키 대신 탐색 속성을 설정하여 관계를 변경하려고하면

, 나는 다음과 같은 예외를 얻을 나는 변경 사항을 제출하려고하면

"AcceptChanges가 다른과 객체 키 값 충돌 beacuse를 계속할 수 없습니다 ObjectStateManager의 객체입니다. AcceptChanges를 호출하기 전에 키 값이 고유한지 확인하십시오. "

마스터 세부 정보 DataGrid를 엔터티의 탐색 속성에 바인딩 할 수 있습니까? 이를 극복하는 데 도움이나 방향이 있으면 크게 감사하겠습니다.

감사합니다.

답변

0

이러한 유형의 문제에 대한 정보가 거의없는 것 같아서 조금 실망합니다.

http://blogs.msdn.com/b/diego/archive/2010/10/06/self-tracking-entities-applychanges-and-duplicate-entities.aspx

문제의 상점 내가 원하는 경우로 돌아갈 것입니다 : 결국 나는이 블로그 게시물에서 # 2 제안을하고 하나의 방법으로 내 서비스 호출을 그룹화하여 그것을 알아낼 수 있었다 데이터베이스를 다시로드하고 데이터를 다시로드합니다. 오류를 피하기 위해 동일한 그래프에 다시 올 수 있도록 조회 테이블을 다시로드해야합니다. STE의 향후 버전에서이 변경 사항이 반영되기를 바랍니다.

관련 문제