【问题标题】:How do I to get linq results between two datetime?如何在两个日期时间之间获得 linq 结果?
【发布时间】:2021-01-06 15:26:11
【问题描述】:

我正在尝试创建一个 LINQ 以在 2 个日期之间获取结果,但我无法执行它并且我遇到了异常。我尝试使用DbFunctions.TruncateTime,但它仍然无法正常工作。

我该如何解决这个问题?

尝试

model.dtIni = dtIni; //dtIni datetime param
model.dtFim = dtFim; //dtFim datetime param   

model.numeros = context.numerosSorteio.Where(n =>  
(
  n.dataCompra.Value.Date == model.dtIni.Value.Date && 
  n.dataCompra.Value.Date == model.dtFim.Value.Date)
))

例外

抛出异常:EntityFramework.dll 中的“System.NotSupportedException”

错误:LINQ to Entities 不支持指定的类型成员“日期”。仅支持初始化程序、实体成员和实体导航属性。

【问题讨论】:

  • 显然n.dataCompra 是可以为空的DateTime?如果该值为 null,则该代码将引发更多异常...

标签: c# entity-framework linq


【解决方案1】:

将您的请求更改为:

model.numeros = context.numerosSorteio.Where(n =>  
(
  n.dataCompra >= model.dtIni && 
  n.dataCompra <= model.dtFim)
)).ToArray();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多