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:値をnullにすることはできません。
   パラメーター名:コンストラクター

抽象型を具象型に変更した場合。

Context.Database.SqlQuery<BlogComment>

...すべてが正常に機能します。

生のクエリを使用して抽象クラスをクエリすることは可能ですか?

4

1 に答える 1

1

試したことはありませんが、答えはノーだと思います。抽象クラスのインスタンスを作成することはできません。これは、生のクエリの結果セットを具体化するときに EF が行おうとしていることとまったく同じです。

于 2012-11-26T15:42:16.130 に答える