首页 / C# / c# – 实体框架中的组和计数
c# – 实体框架中的组和计数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 实体框架中的组和计数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1458字,纯文字阅读大概需要3分钟。
内容图文
![c# – 实体框架中的组和计数](/upload/InfoBanner/zyjiaocheng/800/ca5b530d1bc747f29dfa0f6b7916d8b9.jpg)
我有一个日志表,我按如下方式计算每日日志:
// Count logs by day
IList<DataModel> models = _context.Logs
.Where(x => x.Created >= dateMinimum && x.Created <= dateMaximum)
.GroupBy(x => new { Year = x.Created.Year, Month = x.Created.Month, Day = x.Created.Day })
.Select(x => new { Year = x.Key.Year, Month = x.Key.Month, Day = x.Key.Day, Count = x.Count() })
.AsEnumerable()
.Select(x => new DataModel { Date = new DateTime(x.Year, x.Month, x.Day), LogsCount = x.Count })
.ToList();
// Fill empty days with dates which contains all days in range
models.AddRange(dates.Where(x => !models.Any(y => y.Date == x.Date)).Select(x => new DataModel { Date = x, LogsCount = 0 }));
如果我想按天计算所有日志而不考虑类型,这是有效的.
但我想按日计算日志并输入(错误,警告,信息……).
我试图将x.Type添加到组,但最后我只得到3个项目.
目前我的DataModel如下:
public class DataModel
{
public DateTime Date { get; set; }
public Int32 LogsCount { get; set; }
}
但也许它应该是这样的:
public class DataModel
{
public DateTime Date { get; set; }
public KeyValuePair<String, Int32> LogsCount { get; set; }
}
其中LogsCount有一个字符串,其中包含Type和Int32,其中包含计数.
我怎样才能做到这一点?
解决方法:
可能要考虑使用entity functions按日期分组.
例:
var results = query.GroupBy(r => new
{
SentDate = System.Data.Objects.EntityFunctions.TruncateTime(r.Launch.EmailDeliveredDate),
EventSubTypeID = r.EmailEventSubtypeID
})
.Select(x => new
{
x.Key.SentDate,
x.Key.EventSubTypeID,
NumResults = x.Count()
})
.ToList();
内容总结
以上是互联网集市为您收集整理的c# – 实体框架中的组和计数全部内容,希望文章能够帮你解决c# – 实体框架中的组和计数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。