2012-11-26 102 views
2

我想用SqlQuery()方法(代碼優先)查詢抽象實體。在實體框架中使用原始SqlQuery查詢抽象類

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)); 

這給了我錯誤:

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

如果我改變抽象類型到具體..

Context.Database.SqlQuery<BlogComment> 

...一切工作正常。

是否有可能使用原始查詢來查詢抽象類?

回答

1

我沒有嘗試,但我希望答案是否定的。您無法創建抽象類的實例,這正是EF在實現原始查詢的結果集時嘗試執行的操作。

+0

好吧,我預料到了。謝謝。 – Jekas

+4

我期望EF將結果集實現爲不同的具體類(從抽象類繼承) – flipchart