尝试从.SqlQuery返回数据只返回null

时间:2016-10-05 06:52:37

标签: asp.net entity-framework asp.net-web-api

我正在尝试对数据库运行SQL查询:

public partial class Report2
{
    public string Col1 { get; set; }
    public string Col2 { get; set; }

}
var query = db.Database.SqlQuery<Report2>("Select Substring([English],1,1), Count(1) From Phrase Group by Substring([English], 1, 1)");

手动运行select会给我36行,其中包含两列中的值,就像我期望的那样。

然而,当我运行EF版本时,它给了我36个对象,但col1和col2在所有对象中都是null。

有没有人有任何想法为什么Report2中的结果都是空的?

1 个答案:

答案 0 :(得分:1)

代码中有2个问题:

  • 首先,您需要为列命名以将其映射到您的模型名称:
Select Substring([English],1,1) AS Col1, Count(1) AS Col2 From Phrase Group by Substring([English], 1, 1)
  • 第二,你的第二个字段需要是一个int而不是一个字符串(因为count返回一个整数),这就是你得到'System.Int32' type to the 'System.String' type is not valid <的错误信息的原因/ LI>
public partial class Report2
{
    public string Col1 { get; set; }
    public int Col2 { get; set; }
}