EF (Self Tracking Entities)가있는 EF를 사용하여 응용 프로그램을 개발하고 있습니다. STE는 지연로드를 지원하지 않으므로 외래 키를 변경 한 후 엔티티의 탐색 속성 업데이트를 개발하는 데 선호되는 방법 또는 모범 사례는 무엇입니까? 이 여기에 설명 : 당신이 외래 키 속성을 설정하여 객체 사이의 관계를 변경하면셀 태킹 개체 - 탐색 속성을 업데이트하는 방법?
http://msdn.microsoft.com/en-us/library/ff407090.aspx
은 "참조 탐색 속성이 클라이언트의 해당 주요 기업에 동기화 null로 설정되지 않고 후. 그래프가 개체 컨텍스트에 첨부됩니다 (예를 들어, ApplyChanges 메서드를 호출 한 후) 외래 키 속성과 탐색 속성이 동기화됩니다. "
이 문제
여기에 해결되었습니다그러나 이것은 정말이 할 수있는 가장 좋은 방법은? 이 한계를 극복하기 위해 여러분이 사용했거나 생각할 수있는 몇 가지 방법은 무엇입니까? 당신이 레코드에 변경을 가할 때마다 네가 datagrids에 네비게이션 속성을 표시하고 null로 설정하도록하는 것이 어렵다면 누구나 자기 추적 엔티티를 사용하고 있다고 믿는 것은 어렵다. 이런 일이 발생하면 내 응용 프로그램에서 펑키하게 보입니다. 물론 저장 후 서버로 돌아가서 이러한 속성을 업데이트 할 수 있지만 서버에 저장하라는 호출을하기 전까지는 데이터 맵에 null 탐색 속성이 많이 포함됩니다.
예를 들어, 내 사용자가 레코드 양식을 선택하고 아래 양식에서 편집하는 마스터 세부 시나리오가 있습니다. 내 콤보 상자에 바인딩 된 외래 키를 변경할 때 DataGrid의 탐색 속성에 바인딩 된 레코드는 null로 설정됩니다. 외래 키가 변경되면이 동작을 피하고 탐색 속성을 업데이트하려면 어떻게해야합니까? 내가 외래 키 대신 탐색 속성을 설정하여 관계를 변경하려고하면
, 나는 다음과 같은 예외를 얻을 나는 변경 사항을 제출하려고하면
"AcceptChanges가 다른과 객체 키 값 충돌 beacuse를 계속할 수 없습니다 ObjectStateManager의 객체입니다. AcceptChanges를 호출하기 전에 키 값이 고유한지 확인하십시오. "
마스터 세부 정보 DataGrid를 엔터티의 탐색 속성에 바인딩 할 수 있습니까? 이를 극복하는 데 도움이나 방향이 있으면 크게 감사하겠습니다.
감사합니다.