私は EntityFramework アプリケーションに取り組んでおり、Database.SqlQuery でクラスの代わりに構造体を使用すると問題が発生しました。
構造体は次のようになります。
internal struct Column
{
public int object_id { get; set; }
public string name { get; set; }
}
SqlQuery の呼び出しは次のようになります。
using (var db = new DbContext("ConnectionString"))
{
var columns = db.Database.SqlQuery<Column>(query);
DoSomething(columns.ToList()); // Exception thrown here
}
Column が構造体の場合、「型 'MyService.Column' の式は戻り値の型 'System.Object' には使用できません」というメッセージとともに ArgumentException が発生します。クラスに変更しましたが、正常に動作します。
ここでクラスを使用できて満足していますが、このように使用すると構造体が失敗するのはなぜだろうかと思っています。