var myQry = from .....
这是一个很大的linq返回我需要进一步过滤的所有记录.在我的一个if条件中,我有一个像这样运行的过滤器来检查日期.我需要检查名称是否包含输入的名称,并确切地匹配生日.
我试过这个编译和运行,但没有正常工作
myQry.Where(x => x.Firstname.Contains(strname) && DateTime.Compare( x.BirthDt,searchDt)>=0).ToList()
然后我尝试了这个,它抛出异常“DbarithmeticExpression参数必须有一个数字公共类型”
myQry.Where(x => x.Firstname.Contains(strname) && (x.BirthDt- searchDt).Days == 0).ToList();
对于这种情况,当我在查询中使用where子句时,进行日期比较的最佳方法是什么? linQ查询的where子句中不允许进行哪些 *** 作?
谢谢你的时间…
解决方法 在这种情况下,您可能希望使用 SqlMethods类中的方法来使用sql Server特定的函数.您的第二个查询可以重写为
myQry.Where(x => x.Firstname.Contains(strname) && sqlMethods.DateDiffDay(x.BirthDt,searchDt) == 0).ToList()
这将被翻译成类似的东西
SELECT ... FROM table WHERE Firstname liKE '@p0' AND DATEDIFF(Day,BirthDt,@p1) = @p2
其中p0,p1和p2是参数.
总结以上是内存溢出为你收集整理的c# – 使用LINQ比较查询中的日期全部内容,希望文章能够帮你解决c# – 使用LINQ比较查询中的日期所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)