日期上的 Asp.net LINQ groupby 和 orderBy 未检索预期输出

2023-12-31

我正在使用 linq2sql 开发 asp.net mvc3 应用程序。

我有一个 SiteLog 对象类型列表,其中还包含每个对象:名为 CLRExceptionType 的字符串和名为 EntryDate 的日期。该列表包含在字典中:

private Dictionary<string, List<SiteLog>> dataBaseList = new Dictionary<string, List<SiteLog>>();
DataClasses1DataContext db = new DataClasses1DataContext("string1");
DataClasses1DataContext db2 = new DataClasses1DataContext("string2");

我将词汇表填充到函数中的同一控制器中:

   private void CreateDictionary()
{   
    dataBaseList.Add("db", db.SiteLogs.ToList());
    dataBaseList.Add("db2", db2.SiteLogs.ToList());
}

然后我有这个 Linq 查询:

var result =
dataBaseList.GroupBy(x => x.Key)
          .SelectMany(x =>
                        x.SelectMany(n => n.Value
                                           .GroupBy(g => g.CLRExceptionType)
                                           .Select(g => new
                                                        {
                                                          DB = x.Key,
                                                          Exception = g.Key,
                                                          Count = g.Count(), 
                                                          LastOccured = 
                                                           g.Max(y =>
                                                                 y.EntryDate)
                                                        })))
          .OrderBy(x => x.DB)
          .ThenByDescending(x => x.LastOccured);

这应该给我以下输出:

数据库1:
异常 1(22 次)最后发生时间:1989 年 10 月 22 日 19:30
异常 2(2 次)最后发生时间 20.5.1980 14.50

数据库2
异常 1(22 次)最后发生时间:1989 年 10 月 21 日 19:30
异常 2(2 次)最后发生时间 20.5.1980 14.50

然后突然列表被更新为数据库中的新条目,所以我必须将此数据库放在顶部:
数据库2
异常 1(1 次)上次发生时间:2011 年 7 月 29 日 12 点
异常 1(22 次)最后发生时间:1989 年 10 月 21 日 19:30
异常 2(2 次)最后发生时间 20.5.1980 14.50

数据库1:
异常 1(22 次)最后发生时间:1989 年 10 月 22 日 19:30
异常 2(2 次)最后发生时间 20.5.1980 14.50

所以基本上,我可以按日期对数据库中的日志进行排序,但我无法按最后发生的日期对数据库进行排序,我该如何解决这个问题? 查看代码(Index.cshtml):

<div id="results">

@{
    string firstTime = "";
}
 @foreach( var database in Model)
 {
       int currentCol = 0 ; 
        if (!(firstTime == database.DB))
        {
          <br style="clear:both" /><h3> @database.DB </h3>
                currentCol = 0;
        }

           <div class="logContainer" onclick="location.href='/logs/[email protected] /cdn-cgi/l/email-protection&[email protected] /cdn-cgi/l/email-protection&[email protected] /cdn-cgi/l/email-protection';">

                @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" />
}

     firstTime = database.DB; 
}

</div>

提前Tnx


解决此问题的一种方法是在获得数据后从 L2SQL 切换到 L2Objects,然后再次分组以便进行排序:

var result = dataBaseList.GroupBy(x => x.Key)
          .SelectMany(...)
          .AsEnumerable()
          .GroupBy(x => x.DB)
          .OrderByDescending(g => g.Max(x => x.LastOccured));

这将为您提供一个组列表Key of 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/[email protected] /cdn-cgi/l/email-protection&[email protected] /cdn-cgi/l/email-protection&[email protected] /cdn-cgi/l/email-protection';">

        @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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

日期上的 Asp.net LINQ groupby 和 orderBy 未检索预期输出 的相关文章

  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • SQL不允许表中有重复记录

    如何使其不添加重复项 我想让它通过 ID 之外的所有其他列进行检查 我希望这个无效 ID col1 col2 col3 1 first middle last ID col1 col2 col3 2 first middle last 我希
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • SQL - != 'NULL' 的解释

    我的SSMS代码如下 Select top 50 From FilteredContact Where statuscode 1 and emailaddress1 NULL and telephone1 NULL and address1
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定

随机推荐

  • 使用 Python 读取元数据

    在过去的两天里 我一直在浏览互联网 试图找到解决我的问题的方法 我有一个包含不同文件的文件夹 他们运行文件类型的策略 我正在尝试编写一个 python 脚本 该脚本将从每个文件中读取元数据 如果存在 目的是最终将数据输出到文件中 以便与另一
  • 联合身份验证后,重定向到最初请求的 url

    我们使用 ThinkTecture 服务器设置了联合安全性 当用户希望访问特定 URL 时 他们会被重定向到身份提供商服务器 IDP 然后登录并获得身份验证 然后 IDP 服务器会将用户重定向回该依赖方配置中指定的 重定向 URL 相反 我
  • 在 SQL 中查询 GeoLite2 国家/地区 CSV

    有谁知道如何使用 SQL 从 MaxMind 的 GeoLite2 Country CSV 查找 IP4 地址 我已经使用 MaxMind 的免费 G eoIP 数据很多年了 并且想升级到他们的 GeoLite2 数据 我已将块和位置数据加
  • 笔记本验证失败 Jupyter

    这不是重复的笔记本验证失败 https stackoverflow com questions 61453312 notebook validation failed I have a Jupyter ntb which was worki
  • 如何开发、构建和部署多个基于 OSGi 的 Web 应用程序

    我正在寻找一种方法来开发 构建和部署多个基于 OSGi 的 Web 应用程序 一些 RAP 首先 我使用从以下位置克隆的 RAP 示例 https github com eclipse rap git https github com ec
  • 如何在ES中使用数组映射?

    我想创建一个映射movies看起来像 title The Artist genres Drama Comedy In the ElasticSearch 文档 https www elastic co guide en elasticsea
  • Rust 中的指针和引用有什么区别?

    一个指针 和一个参考 在 Rust 中共享相同的表示 它们都表示一段数据的内存地址 编写代码时有什么实际差异 将 C 代码移植到 Rust 时 是否可以安全地替换它们 C 指针 gt rust 指针 C 引用 gt rust 引用 可以时使
  • GDB使用什么信号来实现tracee和tracer之间的控制传递

    通过控制转移 我的意思是 在tracee执行函数并返回后 会生成哪个信号以便GDB可以在其上等待 并再次夺取控制权 尽管很多人声称这不是 SIGTRAP 在tracee执行函数并返回后 会生成哪个信号以便GDB可以在其上wait 并再次夺取
  • C#中的无锁会话有哪些?

    我了解 C 中的会话以及如何定义它们 但今天我听到一个词Lock free session 我用谷歌搜索但没有得到任何与我的问题完全匹配的答案 谁能解释一下 C 中的无锁会话以及如何为它们编写代码 以下是一些内容来自msdn http ms
  • 如何使动态创建的div可编辑

    我要实现div创建的可编辑动态地 这也是可拖动的 div 这就是我尝试过的 1 divid attr contentEditable true 2 divid live click function this click contentEd
  • 获取 glFrustum 的坐标

    我刚刚开始阅读有关OpenGL主题 特别是关于Viewing http glprogramming com red chapter03 html以满足我目前的需求 我试图理解glFrustum根据我的理解 对我在屏幕上绘制的对象进行透视投影
  • 从 JVM 上的堆栈帧获取局部变量

    有没有办法在不使用调试器的情况下在 JVM 上获取当前范围内的局部变量的映射或其他数据结构 即获取当前栈帧的局部变量 我知道有堆栈跟踪对象 但是StackTraceElement无法访问任何状态 它只是告诉您在哪里调用了什么方法 但不告诉您
  • 无法设置 Content-Type 标头

    我在 HttpClient 上设置 Content Type 时遇到问题 我沿着这个问题 如何为 HttpClient 请求设置 Content Type 标头 https stackoverflow com questions 10679
  • 计算机编程艺术中approximateEqual和essentialEqual的区别

    我从其他地方得到这个代码片段 据站长介绍 代码摘自 由于我没有那本书 请问这两个函数有什么区别 bool approximatelyEqual float a float b float epsilon return fabs a b lt
  • C# 接口和 Haskell 类型类之间的区别

    我知道这里有一个类似的问题 但我想看一个例子 它清楚地表明 你不能做什么interface并且可以使用 Type Class 为了进行比较 我给你一个示例代码 class Eq a where a gt a gt Bool instance
  • 如何在Python中使用pdfminer从在线PDF中提取文本

    我想使用 pdfminer 使用下面的代码从在线 PDF 中提取文本 它没有显示错误 但输出什么也没有 from pdfminer pdfpage import PDFPage from urllib import request from
  • 如何在 Android 中将文件上传到 Cloudinary 时显示进度?

    我实现了将文件上传到Cloudinary的功能 Cloudinary cloudinary new Cloudinary Constants CLOUDINARY URL try FileInputStream is new FileInp
  • Python - Windows - 当“不相关”父进程死亡/崩溃时退出子进程

    经过一番研究后 对于如何让子进程了解父进程在 Windows 下已死亡 崩溃 退出这可以使子进程在无人值守的情况下运行 没有明确的答案 有一些建议如下 Jobs Python 当父进程死亡时如何杀死子进程 https stackoverfl
  • 如何更改 ListView 项目在焦点和单击时的颜色

    我的应用程序中有一个列表视图 这是 xml 布局
  • 日期上的 Asp.net LINQ groupby 和 orderBy 未检索预期输出

    我正在使用 linq2sql 开发 asp net mvc3 应用程序 我有一个 SiteLog 对象类型列表 其中还包含每个对象 名为 CLRExceptionType 的字符串和名为 EntryDate 的日期 该列表包含在字典中 pr