관계는 아마도 잘못된 단어이지만 데이터 테이블은 이전에 사용한 것입니다. SQL 데이터베이스에서 EF4를 가져 왔습니다. 고객, 회사, 부서와 같은 테이블; 일반적으로 선택을 위해 콤보 상자에 들어가는 것들. 정적 목록 (고정식 목록에 있습니다. 응용 프로그램 시작시 채울 필요가 있음)에 바인딩 된 몇 가지 콤보 상자 항목 소스가 있습니다. 그러면 ViewModel에서 선택한 항목을 바인딩하여 특정 선택 항목을 "관련"설정을 쉽게 할 수 있습니다.WPF, EF4 및 관계
내 문제는 몇 군데에서 난 단지 표시 용 데이터 그 릿드의 ID와 연관된 이름이 필요하다는 것입니다. CompanyName이어야하는 CompanyId가있는 수백 개의 행이 있습니다. 나는 여기서 성과를 염려한다. DB FK를 사용하여 조회 중에 이름을 얻을 수는 있지만 정적 목록에 모두 포함되어 있기 때문에 낭비처럼 보입니다. 또한 Lazy 로딩이 데이터 바인딩 중에 또는 초기 쿼리 중에 조회된다는 의미인지 여부를 알지 못합니다.
가장 좋은 해결책은 무엇입니까? 정적 목록을 사용하여 wpf 값 변환기를 만들 수 있습니까? 그것을 가져온 후 데이터에서 foreach를 수행하고 정적 목록에서 값을 찾고 객체에 이름을 저장해야합니까?
이 솔루션에 대한 유일한 관심은 SQL 조회를 'c.Company.Name'으로 100 번 수행하는 것이 성능 문제 일 수 있다는 것입니다. 응용 프로그램이 이미 가져온 목록을 사용하여이 작업을 수행 할 수 있다면 더 잘 작동 할 것으로 기대합니다. 물론 그것은 제 질문입니다. 당신이 그 문제를 생각하지 않는다면 나는 그 문제와 함께 갈 것입니다. – Tyrsius
그렇지 않습니다. 위의 예에서는 모든 결과를 반환하는 단일 쿼리를 수행합니다. 조인과 중첩 된 쿼리를 사용하여 CustomerId와 동일한 쿼리에서 CompanyName을 가져옵니다. – Jeff