C# 如何在两个datetime之间获得linq结果?

C# 如何在两个datetime之间获得linq结果?,c#,entity-framework,linq,C#,Entity Framework,Linq,我正在尝试制作一个LINQ,以获得两个日期之间的结果,但我无法执行它,我遇到了一个异常。我曾尝试使用DbFunctions.TruncateTime,但仍然不起作用 我该如何解决这个问题 尝试 model.dtIni = dtIni; //dtIni datetime param model.dtFim = dtFim; //dtFim datetime param model.numeros = context.numerosSorteio.Where(n => ( n.

我正在尝试制作一个LINQ,以获得两个日期之间的结果,但我无法执行它,我遇到了一个异常。我曾尝试使用
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实体中不支持指定的类型成员“日期”。仅支持初始值设定项、实体成员和实体导航属性


将您的请求更改为:

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

n、 dataCompra将您的请求更改为:

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

n、 dataCompra显然是
n.dataCompra
是一个可空的
DateTime
?如果该值为空,该代码将引发更多异常…显然
n.dataCompra
是一个可空的
DateTime
?如果该值为空,该代码将引发更多异常。。。