C# asp.net mvc core如何返回Json查询

C# asp.net mvc core如何返回Json查询,c#,json,asp.net-mvc,asp.net-core-mvc,dapper,C#,Json,Asp.net Mvc,Asp.net Core Mvc,Dapper,首先,我知道如何通过这样做返回Json查询 public JsonResult streams() { using (var conn = new NpgsqlConnection(Connectionstring)) { conn.Open(); var credentials = conn.Query<Streams>("select id,name from streams").ToList();

首先,我知道如何通过这样做返回Json查询

public JsonResult streams()
{
    using (var conn = new NpgsqlConnection(Connectionstring))
    {
        conn.Open();
        var credentials =  conn.Query<Streams>("select id,name from streams").ToList();                
        ViewData["Message"] = "Your application description page.";
        conn.Close();
        return Json(credentials);
    }
}

这是因为字符串中有Json,对
this.Json(object)
的调用旨在将其序列化为Json

在MVC 5中,您可以:

return this.Content(credentials, "application/json");

该类位于MVC核心中,因此我假设语法保持不变。

SQL查询(在第二个示例中)结果集列是否与流属性名称匹配?您可以共享结果集吗?它没有,这是我的流名称。为什么您要从Sql查询返回json。返回正常的结果集,让Json方法负责将其转换为Json格式我的印象是,从SQL代码返回Json比在应用程序中将其转换为Json更有效,特别是在有大量请求的情况下。非常感谢,这正是我所需要的
public JsonResult streams()
{
    using (var conn = new NpgsqlConnection(Connectionstring))
    {
        conn.Open();
        var credentials =  conn.Query<Streams>("SELECT array_to_json(array_agg(t)) from (select id,name from streams) t").ToList();            
        ViewData["Message"] = "Your application description page.";
        conn.Close();
        return Json(credentials);
    }
}
  public class Streams
    {
        [Key]
        public int id { get; set; }
        public string name { get; set; }
        public int profile_id { get; set; }

        public DateTime created_on { get; set; }
        public int last_reply { get; set; }
        public int comments { get; set; }
        public string city { get; set; }
        public string state { get; set; }
        public float latitudes { get; set; }
        public float longitudes { get; set; }
        public int votes { get; set; }
    }
return this.Content(credentials, "application/json");