解决此问题的一种方法是在拥有数据之后再从L2sql切换到L2Object,然后再次进行分组,以便进行排序:
var result = dataBaseList.GroupBy(x => x.Key)
.SelectMany(...)
.AsEnumerable()
.GroupBy(x => x.DB)
.OrderByDescending(g => g.Max(x => x.LastOccured));
这会给你组列表与Key
的DB
,在群体的最后一个异常的顺序。
要使用这些结果,可以使用嵌套的foreach循环:
<div id="results">
@foreach(var group in Model)
{
int currentCol = 0;
<br style="clear:both" />
<h3> @group.Key </h3>
@foreach(var database in group)
{
<div class="logContainer" onclick="location.href='/logs/Details?databaseID=@database.DB&exceptionName=@database.Exception&exceptionsOccurred=@database.Count';">
@if (database.Count > 999)
{
<div class="counter-small"><b>@database.Count</b></div>
}
else
{
<div class="counter"><b>@database.Count</b></div>
}
<div class="exceptionName"> Exceptions of Type: @database.Exception</div>
<div class="date">Siste: @database.LastOccurred</div>
<hr />
</div>
currentCol += 1;
if (currentCol == 2) { //3 columns were displayed, switch row
currentCol = 0;
<br style="clear:both" />
}
}
}
</div>