RKP*_*RKP 9 c# linq datetime entity-framework linq-to-sql
我需要检查Linq查询中两个日期是否相等,日期来自两个不同的表(不作为参数).我已经在网上和SO中查看了现有的解决方案.有些不适用于我的情况,有些不优雅.如果有的话,只是寻找更好的替代解决方案.
示例查询(需要仅比较日期部分):
var query = from t1 in Table1
join t2 in Table2 on t1.Id equals t2.ForeignKeyId
where t1.Id = someId
&& t1.Date1.Date.Equals(t2.Date2.Date)
Run Code Online (Sandbox Code Playgroud)
这个失败并出现错误"LINQ to Entitiies不支持''Date'.仅支持初始值设定项,实体成员和实体导航属性"
LINQ to Entities不支持帖子'Date'.仅支持初始化程序,实体成员和实体导航属性,该解决方案分别比较日,月和年.我试图将它包装成扩展方法,但似乎Linq也不喜欢扩展方法.由于第二个日期不是变量,我不能使用链接帖子中提到的其他解决方案(由于某种原因,我不能在Linq内部的日期调用"AddDays"方法).Linq中的Date API看起来有很多限制.
Ren*_*iuz 16
尝试使用DiffDays从EntityFunctions类.个人从未使用过这个,但值得尝试这样:
var query = from t1 in Table1
join t2 in Table2 on t1.Id equals t2.ForeignKeyId
where t1.Id = someId
&& EntityFunctions.DiffDays(t1.Date1, t2.Date2) == 0
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5066 次 |
最近记录: |