一、在使用EF日期筛选的时候可能会出现这样的异常:“sqlServer.DATEDIFF”函数的 DATEPART 参数必须是文字字符串。”
出现异常的代码:
DateTime date = DateTime.Now.AddYears(-1); string dateType = "month"; int count1 = _member.DbSet.Where(q => sqlFunctions.DateDiff(dateType,q.ActiveTime,date) == 0).Count();
出现异常的原因:
在表达式中,好像DateDiff中的 日期格式参数不支持变量传入。
解决方案:
这样指定就不会异常了。
int count2 = _member.DbSet.Where(q => sqlFunctions.DateDiff("month",date) == 0).Count();