【问题标题】:SqlFunctions.DateAdd equivalent in EF CoreEF Core 中的 SqlFunctions.DateAdd 等效项
【发布时间】:2020-02-03 06:35:17
【问题描述】:

我正在将一个项目转换为 .Net Core,并正在寻找一个等效的解析操作,将 EF 核心中的 SQL 字符串用作谓词 (DateAdd)。

items.Where(x => SqlFunctions.DateAdd("day", 0, x.ToDateString) <= toDate)

在 EF.Functions 中运气不佳。有没有等价物?

干杯

KH

【问题讨论】:

    标签: entity-framework-core


    【解决方案1】:

    改用 .NET 代码。

    items.Where(x => x.ToDateString.AddDays(0) <= toDate)
    

    已编辑用于检查 200,000 条记录的性能

    【讨论】:

    • 谢谢,但我有超过 100,000 个项目和一个合理涉及的对象图,因此更愿意将此逻辑推迟到 SQL 来修剪数据集。
    • 已编辑帖子。您可以查看截图。我有 200,000 件物品,而且速度更快。 0.08ms 无过滤器和 0.55ms 过滤器。 0.55ms 相当于 0.0005 秒。对你来说还不够快吗?
    • 嗨,感谢更新的答案,但这不等同于 SqlFunctions.DateAdd 因为它在不同的进程中执行。使用我的模型时两者之间存在明显的速度差异,因为它非常复杂,所以我需要在 SQL 中执行它。再次感谢。
    【解决方案2】:

    你可以改变你的方程式并使用

    EF.Functions.DateDiffDay(x.ToDateString - toDate) <= 0
    

    【讨论】:

      猜你喜欢
      • 2019-03-02
      • 1970-01-01
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      • 2021-04-27
      • 2020-04-13
      • 1970-01-01
      • 2017-06-01
      相关资源
      最近更新 更多