我正在尝试使用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>
......一切正常。
是否可以使用原始查询查询抽象类?
答案 0 :(得分:1)
我没试过,但我希望答案是否定的。您无法创建抽象类的实例,这正是EF在实现原始查询的结果集时尝试执行的操作。