【问题标题】:Entity Framework convert string value to datetime实体框架将字符串值转换为日期时间
【发布时间】:2020-07-05 15:53:39
【问题描述】:

我有一个表格,以字符串格式存储日期和时间 (dd/MM/yyyy) 列表。

我要做的是按DateTime 降序对数据进行排序,下面的代码工作得很好,但它只是按日期(dd)排序,所以我必须将其转换为日期时间才能完成正确的工作。

casesBindingSource.DataSource = db.casesSet
                                  .Where(x => x.casestatus == "شفيت")
                                  .OrderByDescending(c => c.dateofrecovery)
                                  .ToList();

【问题讨论】:

  • dateofrecovery的类型是什么?
  • @devNull 字符串

标签: c# entity-framework sqlite


【解决方案1】:

您是否尝试过先调用 tolist,然后再运行 orderby。我知道这有点低效,但值得一试。

casesBindingSource.DataSource = db.casesSet
                                  .Where(x => x.casestatus == "شفيت")
                                  .ToList()
                                  .OrderByDescending(c => DateTime.ParseExact(c.dateofrecovery, "dd/MM/yyyy",CultureInfo.InvariantCulture).Year)
                                  .ThenByDescending(c => DateTime.ParseExact(c.dateofrecovery, "dd/MM/yyyy", CultureInfo.InvariantCulture).Month)
                                  .ThenByDescending(c => DateTime.ParseExact(c.dateofrecovery, "dd/MM/yyyy", CultureInfo.InvariantCulture).Day);

【讨论】:

    【解决方案2】:

    尝试:

    casesBindingSource.DataSource = db.casesSet
                                      .Where(x => x.casestatus == "شفيت")
                                      .OrderByDescending(c => DateTime.ParseExact(c.dateofrecovery, "dd/MM/yyyy", Nothing))
                                      .ToList();
    

    【讨论】:

      【解决方案3】:

      试试这个方法: .OrderByDescending(c => DateTime.ParseExact(c.dateofrecovery, "dd/MM/yyyy", CultureInfo.InvariantCulture))

      【讨论】:

      • 我已经试过了,它显示了这个错误:LINQ to Entities does not identify the method 'System.DateTime ParseExact.
      • 也许使用 .Select() 可能有助于将您的 dateofrecovery 作为 string 的实体映射到一个 dateofrecovery 作为 DateTime 的新实体,订购它们,然后重新映射到您的原始实体类型。不过,就性能而言,这种方法可能不是最好的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 2011-01-24
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      相关资源
      最近更新 更多