本文共 423 字,大约阅读时间需要 1 分钟。
一、在使用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", q.ActiveTime, date) == 0).Count();更多参考: