我有一个名为EndDate的DateTime?
列的sql-server-ce 4数据库。当我删除一条记录时,我设置了这个结束日期,当我想要检索一个记录列表时,我想通过在enddate上应用一个过滤器来过滤所有删除的记录。将linq中的DateTime与sql server ce进行比较的最简单方法是什么?
我使用实体框架通过linq应用此过滤器。
我的LINQ查询看起来是这样的:
protected IDbSet<TEntity> Entities;
...
Entities.AsNoTracking().AsQueryable()
.Where(entity => !entity.EndDate.HasValue || entity.EndDate.Value > DateTime.UtcNow);
当我执行这个LINQ查询我得到以下错误:
The function 'CurrentUtcDateTime' is not supported by SQL Server Compact.
搜索这个错误告诉我,(如果我的理解是正确)我不能使用DateTime.UtcNow。
我的问题是:有什么方法可以达到我想要达到的目标?
有没有不同的功能,我可以通过linq使用?或者我应该使用更原始的解决方案,我也将日期时间转换为时代并比较这些?
你现在试过'var now = DateTime.UtcNow;'然后'... entity.EndDate.Value>;'? – Igor
entity.EndDate.Value.ComparetTo(otherDate)lookup CompareTo – kblau
谢谢伊戈尔,这没有把戏。我以为我尝试过,但我想我没有。我仍然想知道为什么一个变种被接受,而一个财产不是?有任何想法吗? – Cornelis