2

我正在尝试使用 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:值不能为空。
   参数名称:构造函数

如果我将抽象类型更改为具体..

Context.Database.SqlQuery<BlogComment>

...一切正常。

是否可以使用原始查询来查询抽象类?

4

1 回答 1

1

我没有尝试过,但我希望答案是否定的。您不能创建抽象类的实例,而这正是 EF 在具体化原始查询的结果集时试图做的事情。

于 2012-11-26T15:42:16.130 回答