【发布时间】:2019-07-11 01:58:17
【问题描述】:
我有一个简单的方法,根据一些参数从 db 返回 rage 数据,很简单:
public async Task<IEnumerable<P2PStats>> GetFilteredNetStats(ushort id, ushort remoteId, DateTime start, DateTime end)
{
using (var ctx = new DataContext())
{
IQueryable<P2PStats> query = ctx.P2PStats
.Where(stat => stat.Id == id && stat.Date >= start && stat.Date <= end)
.Where(stat => stat.P2PStatsDetailed.Any(detail => detail.RemoteId == remoteId))
.Select(stat => new P2PStats
{
Id = stat.Id,
AxmCardId = stat.Id,
Date = stat.Date,
P2PStatsDetailed = stat.P2PStatsDetailed.Where(detail => detail.RemoteId == remoteId).ToList()
});
return await query.ToListAsync();
}
}
它返回 P2PStats 的集合(实际上是一个任务,但最终结果是一个集合)。可以对此进行修改,以便我只能从数据库中获取 2 个值,首先是最低日期,其次是最高日期?
我尝试了 Max 和 Min,但仅在查询具体化之后我才得到 max 和 min 值或属性而不是整个记录。
【问题讨论】:
-
由于您按 id 过滤,集合不会只返回一项吗?
标签: c# .net-core entity-framework-core