【问题标题】:How to get json data in return using mvc and entity framework如何使用 mvc 和实体框架获取 json 数据作为回报
【发布时间】:2016-11-23 11:26:57
【问题描述】:

在 orderby g.datetime 时出错 错误

严重性代码描述项目文件行抑制状态 错误 CS1061 'IGrouping' 不包含'datetime' 的定义,并且找不到接受'IGrouping' 类型的第一个参数的扩展方法'datetime'(您是否缺少 using 指令或程序集引用?) waterleveltesting c:\ users\kernel\documents\visual studio 2015\watertower\waterleveltesting\waterleveltesting\Controllers\waterController.cs 22 活动

id  waterlevel     datetime                 towerid
1   25             2016-09-21 01:10:00.000  1
2   33             2016-09-21 01:11:00.000  2

op- [{"towerid":"1","waterlevel":25,"datetime":"Nov 09, 2016 07:02:25PM"},{"towerid":"33","waterlevel":22,"datetime":"Nov 09, 2016 07:02:25PM"}]

我的代码:

     public ActionResult Getwaterlevel()
    {
        using (waterlevel_Entities DB = new waterlevel_Entities())
        {
            var wt = from w in DB.watertowerlevels
                     group w by w.towerid into g
                     orderby g.datetime
                     select new
                     {
                         towerid = g.Key,
                         waterlevel = g.FirstOrDefault().waterlevel,
                         datetime = g.FirstOrDefault().datetime.ToString("MMM yyy")
                     };


            return Json(wt.ToList(), JsonRequestBehavior.AllowGet);


        }

    }

【问题讨论】:

    标签: json asp.net-mvc entity-framework controller


    【解决方案1】:

    在 LINQ 中获取每个组的第一条记录。你可以尝试使用这个: 另请注意,我们必须在这里对待C# Date 有点特别:

            var wt = from w in DB.watertowerlevels
                     group w by w.towerid into g
                     orderby g.datetime
                     select new { towerid = g.Key, waterlevel = g.FirstOrDefault().waterlevel,
                     datetime = g.FirstOrDefault().datetime.ToString("MMM yyyy")};
    
    
     return  Json(wt.ToList(), JsonRequestBehavior.AllowGet);
    

    【讨论】:

    • 这里的 p 是什么?
    • json 数据是这样的- [{"towerid":1,"waterlevel":25,"datetime":"\/Date(1474400400000)\/"},{"towerid":2 ,"水位":33,"日期时间":"\/日期(1474400460000)\/"}]
    • 为什么会有这样的日期\/Date(14744004000‌​00)\/
    • 我曾经在学习的时候试错了:)你能不能试试select new { towerid = g.Key, wol = g.ToList()};看看它会返回什么
    • [{"towerid":1,"wol":[{"id":1,"waterlevel":25,"datetime":"\/Date(1474400400000)\/"," towerid":1}]},{"towerid":2,"wol":[{"id":2,"waterlevel":33,"datetime":"\/Date(1474400460000)\/","towerid ":2}]}]
    猜你喜欢
    • 2016-10-24
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多