我正在开发一个 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。我把它改成了一个类,它工作正常。
我很高兴在这里使用一个类,但我想知道为什么以这种方式使用结构会失败。