Asp.net mvc 日期差异:此函数只能从LINQ调用到实体。

Asp.net mvc 日期差异:此函数只能从LINQ调用到实体。,asp.net-mvc,Asp.net Mvc,请问我该如何解决这个问题 此函数只能从LINQ调用到实体 这是我的密码 public long TodayNotifications() { long notifications = _notificationsService.GetNotifications().Where(x => DbFunctions.DiffDays(x.NOTIFICATION_DATE, DateTime.Now) == 0).Count(); ret

请问我该如何解决这个问题

此函数只能从LINQ调用到实体

这是我的密码

        public long TodayNotifications()
    {
        long notifications = _notificationsService.GetNotifications().Where(x => DbFunctions.DiffDays(x.NOTIFICATION_DATE, DateTime.Now) == 0).Count();

        return notifications;
    }

如果未使用Linq to实体,则不能使用
DbFunctions
。似乎您正在调用一个返回
IEnumerable
的web服务或实现
IEnumerable
的东西。您只需检查日期的日期组件是否相等,如下所示:

long notifications = _notificationsService.GetNotifications()
    .Where(x => x.NOTIFICATION_DATE.Date == DateTime.Now.Date).Count();
如果要使用进行日期差异的
Subtract
方法,请参阅以了解更多信息。以下是一个示例:

var date1 = new DateTime();
var date2 = date1.AddDays(1);
var days = date2.Subtract(date1).TotalDays;

如果未使用Linq to实体,则不能使用
DbFunctions
。似乎您正在调用一个返回
IEnumerable
的web服务或实现
IEnumerable
的东西。您只需检查日期的日期组件是否相等,如下所示:

long notifications = _notificationsService.GetNotifications()
    .Where(x => x.NOTIFICATION_DATE.Date == DateTime.Now.Date).Count();
如果要使用进行日期差异的
Subtract
方法,请参阅以了解更多信息。以下是一个示例:

var date1 = new DateTime();
var date2 = date1.AddDays(1);
var days = date2.Subtract(date1).TotalDays;

您必须确保
GetNotifications()
返回
IQueryable
。否则,请更改您的
Where()
条件,以使用标准的
DateTime
方法执行天数差异计算。如果GetNotifications()返回的集合不是
IQueryable
,我如何确保您的GetNotifications()返回IQueryable,然后您可以尝试此
\u notifications服务.GetNotifications().Count(x=>x.NOTIFICATION\u DATE.DATE==DateTime.Today)
您必须确保您的
GetNotifications()
返回
IQueryable
。否则,请更改您的
Where()
条件,以使用标准的
DateTime
方法执行天数差异计算。如果GetNotifications()返回的集合不是
IQueryable
,我如何确保您的GetNotifications()返回IQueryable,然后你可以试试这个
\u notificationsService.GetNotifications().Count(x=>x.NOTIFICATION\u DATE.DATE==DateTime.Today)
谢谢。但是为什么我还有另一个错误?在序列化代码“public JsonResult SelectStates(int-id){IEnumerable states=_statesService.GetStates()”中的对象时检测到循环引用。其中(stat=>stat.COUNTRY_-id==id);返回Json(states);}@gbenga我不确定。请问另一个问题,因为这是一个全新的问题,我相信有人会帮助你。另外,在序列化过程中搜索循环引用,它可能会为您指明正确的方向。谢谢。但是为什么我还有另一个错误?在序列化代码“public JsonResult SelectStates(int-id){IEnumerable states=_statesService.GetStates()”中的对象时检测到循环引用。其中(stat=>stat.COUNTRY_-id==id);返回Json(states);}@gbenga我不确定。请问另一个问题,因为这是一个全新的问题,我相信有人会帮助你。此外,在序列化过程中搜索循环引用,它可能会为您指明正确的方向。