Entity Framework Code First では、エンティティ(モデル)クラス以外の任意のクラスのインスタンスを作成できます。Database.SqlQuery(Of TElement)を使用します。もちろん DbContext を継承したクラスで使用しているエンティティ(モデル)クラスも作成できます。Database は、DbContext を継承したコンテキストクラスのプロパティとして参照できます。
SELECT結果からエンティティクラスを作成できる条件として、エンティティクラスの各プロパティの名前とSqlQueryメソッドで使用するクエリのSELECT結果の列名が一致している必要があります。また、SqlQuery で取得したクラスのインスタンスは、エンティティクラスだとしても、トラッキングの対象になりません。
クエリパラメタを使用する場合のパラメタ名
Database.SqlQuery(Of TElement)では、SQLクエリにSQLパラメタを使用できます。パラメタ名は @p0, @p1 のように、 @p の後に数字をつけた名前になります。SquQuery メソッドの引数params Object[] parametersで指定したパラメタの位置が@pの後に付与する番号に対応します。
さんのコメント: さんのコメント: