感谢您检查这一点。
我的情况是我有一个系统,用户可以在其中创建自定义过滤视图,我将其构建到请求的 linq 查询中。在界面上,他们想查看他们创建的所有视图的计数;很直接。我熟悉将多个查询组合到一个调用中,但在这种情况下,我不知道我最初有多少查询。
有谁知道这种循环将计数查询组合成一个查询的技术,然后我可以使用 ToList() 或 FirstOrDefault() 执行该查询?
//TODO Performance this isn't good...
foreach (IMeetingViewDetail view in currentViews)
{
view.RecordCount = GetViewSpecificQuery(view.CustomFilters).Count();
}
这是我所指的组合多个查询的示例。这是两个查询,然后我将它们组合成一个匿名投影,从而产生对 sql 服务器的单个请求。
IQueryable<EventType> eventTypes = _eventTypeService.GetRecords().AreActive<EventType>();
IQueryable<EventPreferredSetup> preferredSetupTypes = _eventPreferredSetupService.GetRecords().AreActive<EventPreferredSetup>();
var options = someBaseQuery.Select(x => new
{
EventTypes = eventTypes.AsEnumerable(),
PreferredSetupTypes = preferredSetupTypes.AsEnumerable()
}).FirstOrDefault();