C# Linq到实体和带日期的查询
我正在使用jquery插件在MVC4应用程序的日历视图上显示事件 我已经配置了插件,该插件正确地调用了我的控制器操作,并传入了两个双参数,它们以unix时间戳格式表示当前视图上显示的开始日期和结束日期 在这里您可以看到我的控制器操作方法C# Linq到实体和带日期的查询,c#,datetime,asp.net-mvc-4,linq-to-entities,fullcalendar,C#,Datetime,Asp.net Mvc 4,Linq To Entities,Fullcalendar,我正在使用jquery插件在MVC4应用程序的日历视图上显示事件 我已经配置了插件,该插件正确地调用了我的控制器操作,并传入了两个双参数,它们以unix时间戳格式表示当前视图上显示的开始日期和结束日期 在这里您可以看到我的控制器操作方法 [HttpPost] public ActionResult GetEvents( double start, double end ) { DateTime dtStart = DateTimeUtils.UnixTimeStampToDateTime
[HttpPost]
public ActionResult GetEvents( double start, double end ) {
DateTime dtStart = DateTimeUtils.UnixTimeStampToDateTime( start );
DateTime dtEnd = DateTimeUtils.UnixTimeStampToDateTime( end );
IPolicyRepository _pRepo = _uow.PolicyRepository;
IEnumerable<Policy> model =
_pRepo.Find( p => p.EndDate >= dtStart.Date && p.EndDate < dtEnd.Date );
...
}
但是,存储库的Find
方法(它将lambda传递给EF)不会返回任何行,即使某些行存在。
我怀疑这个问题可能是由于浏览器和数据库服务器之间的格式和/或区域设置不同造成的
我如何解决这个问题并创建一个查询,该查询将了解所使用的区域设置和特定格式
编辑:
有关更多信息,我将在此处添加模型定义
public partial class Policy
{
public int PolicyID { get; set; }
[...]
[Required]
[DisplayName( "Begin date" )]
[DisplayFormat( ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yyyy}" )]
public DateTime BeginDate { get; set; }
[Required]
[DisplayName( "Due Date" )]
[DisplayFormat( ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yyyy}" )]
public DateTime EndDate { get; set; }
}
我发现了问题所在 模型类上存在属性
DisplayFormat
,导致了该问题
[DisplayFormat( ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yyyy}" )]
简单地删除,它的工作完美 假设使用SQL,可能会启动
探查器并查看它发送了什么?您可能会开始头疼全球化/本地化@谢谢你的回答。我可以在localdb实例上使用profiler吗?我从来没有使用过localdb,但从快速的internet搜索来看,它没有附带SQL profiler,但可能有一些解决方法。另一个选项是使用,这将为您提供生成的SQL。对不起,我帮不了什么忙。
[DisplayFormat( ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yyyy}" )]