2012-05-16 3 views
2

나는 Requestparent라는 하나의 클래스가 있습니다. requesttype1, requesttype2, requesttype3이라는 3 개의 클래스가 있으며 모두 3이 RequestParent에서 상속합니다. 유형 - -에 의해 개설 오픈 날짜 : I 쿼리 그리드에서 같은Entity Framework, 하위 클래스 유형 가져 오기?

뭔가를 모든 종류의 열려있는 모든 요청을 표시해야 한 화면에서

.

내가 requestparent를 쿼리하면 형식을 얻지 못할 것입니다.

다른 해결책은 하위 개체에 3 가지 다른 쿼리를 만드는 것입니다.

EF가 자동으로 판별 자 열을 만들었습니다.

답변

2

기본 검색어로 검색어를 선택하는 경우, then은 자식 테이블에 join 문을 만들고 자식 유형의 엔터티를 만듭니다.

따라서 기본 테이블에 쿼리를 작성해도 하위 유형의 엔터티가 생성됩니다. 엔티티 유형을 가져 오려면 Entity.GetType() 문을 사용하면됩니다.

예를 들어 Base라는 기본 엔티티와 Derived1 및 Derived2라는 두 개의 파생 엔티티가 있다고 가정 해 보겠습니다. 그런 다음 다음 select 문을 실행하면;

List<Base> temp = (from o in context.Base 
      select o).ToList<Base>(); 

당신은 1 형을 유도하고, 기업의 유형을 결정하기에 충분 2. 그냥 사용 oftype을 파생의 실체를해야합니다. 예를 들어;

if (temp[0].GetType() == typeof(X)) 
    { 
      .... 
    } 
관련 문제