我有一段代码从表格中选择一个列,但效果很好:
db.Database.SqlQuery<string>("select Col1 from ....).ToList();
但是,正如预期的那样,当尝试选择多个列时,它会出错,因为结果结构不正确。
我尝试过以下方法:
db.Database.SqlQuery<Tuple<string, string>>("select Col1, Col2 from ...).ToList();
返回错误:
结果类型&#39; System.Tuple`2 [System.String,System.String]&#39;可能不是抽象的,必须包含默认构造函数。
我该如何解决这个问题,我是否正确使用元组?
答案 0 :(得分:2)
您需要拥有一个包含与列名称相同的属性的类,以便Database.SqlQuery
能够正常工作。请参阅here。
public class MyType
{
public string Col1 { get; set; }
public string Col2 { get; set; }
}
List<MyType> list = db.Database.SqlQuery<MyType>("select Col1, Col2 from ....").ToList();
答案 1 :(得分:1)
为查询结果定义一个类,例如
class QueryResult
{
public string Col1 { get; set; }
public string Col2 { get; set; }
}
并像这样查询:
db.Database.SqlQuery<QueryResult>("select Col1, Col2 from ...).ToList();