2012-11-26 2 views
2

SqlQuery() 메서드 (코드 첫 번째)를 사용하여 추상 엔티티를 쿼리하려고합니다. 원시 SqlQuery를 사용하여 엔티티 프레임 워크에서 추상 클래스를 쿼리합니다.

 
    System.ArgumentNullException: Value cannot be null. 
    Parameter name: constructor 

나는 콘크리트하는 추상 형식을 변경하는 경우

..

Context.Database.SqlQuery<BlogComment> 

... 모든 것이 잘 작동 :

public abstract class UserComment 
{ 
    ... [internals] 
} 

public class BlogComment : UserComment 
{ 
    ... [internals] 
} 

var result = Context.Database.SqlQuery<UserComment>(
       @"select * from [UserComments] where ... [internals]", 
       new SqlParameter("user_id", user.Id)); 

이 나에게 오류를 제공합니다.

원시 쿼리를 사용하여 추상 클래스를 쿼리 할 수 ​​있습니까?

답변

1

나는 그것을 시도하지 않았지만 대답은 아니오라고 기대합니다. 추상 클래스의 인스턴스를 생성 할 수 없으며 바로 원시 쿼리의 결과 집합을 구체화 할 때 EF가 수행하려고하는 작업입니다.

+0

좋아, 나는 그것을 기대했다. 감사. – Jekas

+4

나는 EF가 다른 구체적인 클래스 (추상적 클래스를 상속받은)로 결과 셋을 구현할 것으로 기대한다. – flipchart

관련 문제