c# – 在linq查询结果中格式化日期

c# – 在linq查询结果中格式化日期,第1张

概述以下 linq to entities查询给出以下结果: public class UserCountResult{ public DateTime? date { get; set; } // **should this be string instead?** public int users { get; set; } public int visits { get 以下 linq to entitIEs查询给出以下结果:
public class UserCountResult{    public DateTime? date { get; set; } // **should this be string instead?**    public int users { get; set; }    public int visits { get; set; }}public JsonResult getActiveUserCount2(string from = "",string to = ""){    var query = from s in db.UserActions                    group s by EntityFunctions.TruncateTime(s.Date) into g                    select new UserCountResult                    {                        date = g.Key,// can't use .toString("dd.MM.yyyy") here                        users = g.Select(x => x.User).distinct().Count(),visits = g.Where(x => x.category == "online").Select(x => x.category).Count()                    };    return Json(query,JsonRequestBehavior.AllowGet);}

结果:

[{"date":"\/Date(1383433200000)\/","users":21,"visits":47},{"date":"\/Date(1383519600000)\/","users":91,"visits":236}]

而不是像/ Date(1383433200000)/这样的东西,我需要格式为“dd.MM.yyyy”的日期,例如

[{"date":"29.11.2013",{"date":"30.11.2013","visits":236}]

我找不到如何更改查询中的格式,我不知道该怎么做..我甚至不明白为什么g.Key是可以为空的…感谢您的任何输入!

解决方法 g.Key可以为空,因为它是EntityFunctions.TruncateTime的签名. http://msdn.microsoft.com/en-us/library/dd395596.aspx.

要从linq退出到实体,您可以保持查询不变,并在事实之后将其投影:

return Json(query.AsEnumerable().Select(r => new     {        date = r.date.GetValueOrDefault().ToString("dd.MM.yyyy"),users = r.users,visits = r.visits    }),JsonRequestBehavior.AllowGet);

它不漂亮,但这是linq to EntitIEs for you.

总结

以上是内存溢出为你收集整理的c# – 在linq查询结果中格式化日期全部内容,希望文章能够帮你解决c# – 在linq查询结果中格式化日期所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1238757.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存