2013-07-30 1 views
1

Company 테이블, 부서 테이블, Manager 테이블 및 Employee 테이블이 있다고 가정 해 보겠습니다. 목록 테이블 아래에는 일대 다 많은 관계가 있습니다. 따라서 Employee 테이블에는 ManagerID 외래 키가 있고, Manager 테이블에는 DepartmentID 키가 있습니다.Entity Framework에서 체인 된 탐색 속성을 제거 할 수 있습니까

EF 디자이너를 사용하여 DbContext 및 다른 클래스를 만들었습니다. 나는 테이블 사이의 연관을 디자이너의 외래 키로 추가했다. 문제는 직원 테이블과 디자이너의 부서 또는 회사 테이블간에 연결을 만들 수 없다는 것입니다.

나는 다음과 같은 부서 속성을 사용하여 직원에 대한 별도의 부분 클래스를 만드는 시도 :

지정된 유형의 멤버 '그러나

public Department Department { 
    get { return this.Manager.Department; } 
} 

, 나는 다음과 같은 예외가 프로그램을 실행할 때 관리자 '는 LINQ to Entities에서 지원되지 않습니다. 이니셜 라이저, 엔티티 구성원 및 엔티티 탐색 특성 만 지원됩니다.

나는 종종 Employee 테이블을 쿼리 한 다음 해당 직원과 회사 및 부서 정보를 표시하려고합니다. 따라서 Employee.Manager.Department.Company.Field이있는 여러 줄이있어 어수선하게 보입니다.

ManagerID에 CompanyID를 추가하고 CompanyID 및 DepartmentID를 Employee 테이블에 추가하는 것이 더 좋습니까? 아니면 데이터베이스 정규화에 영향을 줍니까? 어떤 종류의 패러다임이 이러한 문제를 설명합니까?

생각이 의견은 당신이 얻을 예외 코드의 그 부분과 관련이 있지 않도록 완전히 EF 무시 세터없이 환영

답변

1

속성입니다. 귀하의 접근 방식은 괜찮지 만, 귀하의 사업체를 올바르게 설정하면 올바르게 작동 할 것입니다.

+0

setter {set {Order.Event = value;}'를 추가하려고했지만 여전히 동일한 오류가 발생합니다. –

+0

당신은 setter를 추가하지 않을 것입니다. 먼저 모델이 작동하도록 만들어야합니다. – TakeMeAsAGuest

관련 문제