1

私は、EF5を使用DbContextしてSQLを使用してデータをクエリする正しい方法に頭を悩ませようとしています。EF は ORM であり、通常は linqTOentities およびエンティティ オブジェクトで使用されることを十分に認識しています。しかし、SQL を必要とする興味深いケースがあります。

これが私が使ってきたサンプルコードです:

testQuery = "select 'HITHERE' as firstval, 'HOTHERE' as secondval;";
var results = DataContext.Database.SqlQuery<string>(testQuery);

上記のコード (C#) を実行すると、次のエラーが発生します。

{"The data reader has more than one field. Multiple fields are not valid for EDM primitive or enumeration types."}

エラーは、バインドする正しい型ではないというstring部分に関係していると考えました。.SqlQuery<string>(testQuery)そこで、コードを次のように変更しました。

testQuery = "select 'HITHERE' as firstval, 'HOTHERE' as secondval;";
var results = DataContext.Database.SqlQuery<List<string>>(testQuery);

この更新されたコードを実行するとresults、値がなく、カウントが 0 になります。ただし、SSMS でテスト SQL クエリを実行すると、期待どおりの結果が得られます。1 行、列名を持つ 2 つの値。firstVal = HITHERE および secondVal = HOTHERE。

これらの選択値を DbContext を使用して C# の変数にバインドするにはどうすればよいですか?

4

1 に答える 1