我的 JsonResult 函数如下 public JsonResult IsLive(string username) {
User usr = Database.Session.Query<User>().FirstOrDefault(u=>u.username ==
username.ToString());
if (usr != null)
{
usr.LastHeartBeat = DateTime.Now;
Database.Session.SaveOrUpdate(usr);
}
List<string> onlineUsersList =Database.Session.Query<User>().Where(u =>
IsActive(u.LastHeartBeat)== true).Select(u => u.username).ToList();
return Json(onlineUsersList, JsonRequestBehavior.AllowGet);
}
但是当我尝试访问时出现此异常
Boolean IsActive(System.DateTime)
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information
about
the error and where it originated in the code.
Exception Details: System.NotSupportedException: Boolean
IsActive(System.DateTime)
Source Error:
Line 150: //sentStatus = "saved";
Line 151: }
Line 152: List<string> onlineUsersList
=Database.Session.Query<User>().Where(u =>
IsActive(u.LastHeartBeat)).Select(u => u.username).ToList();
Line 153: // string sentStatus = username;
Line 154: return Json(onlineUsersList,
JsonRequestBehavior.AllowGet);
Source File: 2013\Projects\EtlGui\Controllers\UsersController.cs Line:
152
这是我的另一个引用 where 子句的函数
bool IsActive(DateTime heartBeatTime)
{
string ActiveOrInactive = "Active";
try
{
TimeSpan span = (TimeSpan)(DateTime.Now - heartBeatTime);
if (span.TotalSeconds >= 120)
{
return false;
}
return true;
}
catch (Exception)
{
return false;
}
}
从这些我做错了什么,因为我试图追踪它一整天但到目前为止没有结果!
您遇到的问题是IsActive()
无法转换为 SQL,并且需要在将结果返回给应用程序后对其进行过滤。
List<string> onlineUsersList =Database.Session.Query<User>().Where(u =>
IsActive(u.LastHeartBeat)== true).Select(u => u.username).ToList();
要使用,IsActive
您必须从数据库中检索所有内容然后过滤
var sessions = Database.Session.ToList();
List<string> onlineUsersList = sessions.Where(u =>
IsActive(u.LastHeartBeat)== true).Select(u => u.username).ToList();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句