【问题标题】:LINQ to Entities does not recognize the method 'System.String ToString(System.String)LINQ to Entities 无法识别方法 'System.String ToString(System.String)
【发布时间】:2017-08-08 23:23:03
【问题描述】:
....linq code
select new OrderList
{
Requestor = f.Name,
Amount = b.TotalInclAmount,
DateOrder =  b.DateOrder.ToString("dd/MM/yyyy HH:mm:ss"); // This line cause this issue
} 

当我执行上述查询时,出现以下异常。

LINQ to Entities 无法识别方法 'System.String ToString(System.String)' 方法,而且这个方法不能翻译 到商店表达式中。

当我通过 StackOverflow 搜索有关此问题的大多数答案时,建议使用 AsEnumerable 但在我的情况下,表格要大得多。当我使用它时,它会导致性能问题。

建议我在不使用 AsEnumerable 的情况下实现这一目标。

【问题讨论】:

  • 将日期保留为日期!
  • 谢谢。在此之前,我也想查看其他人的评论。
  • 将其加载为日期,在结果上调用AsEnumerable(),然后然后编写另一个Select(),将其格式化为所需的字符串。

标签: c# entity-framework linq


【解决方案1】:

您应该在 UI 中进行演示,而不是在业务层中。因此,将其保留为 DateTime 并让 UI 对其进行格式化。它尝试将ToString 解释为查询,但该查询不可用。

您仍然应该坚持使用IQueryable<T> 和日期作为日期时间,因为您可以在查询被持久化之前为其添加条件。 (例如DateOrder 上的where

【讨论】:

  • 您的意思可能是IQueryable<T>,而不是IEnumerable<T>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-26
  • 2013-07-13
相关资源
最近更新 更多