我目前正在尝试限制哪些用户可以访问哪些组,并使用linq进行此操作 . 当我将相关组添加到视图时,我的问题出现了 .
我一直得到的错误是:
LINQ to Entities无法识别方法'System.String GetUserId(System.Security.Principal.IIdentity)'方法,并且此方法无法转换为存储表达式
这是我的代码:
var groupUser = db.GroupUsers.Where(u => u.ApplicationUserId == User.Identity.GetUserId()).Select(gr => gr.GroupId);
pv.GroupList = db.Groups.Where(g => groupUser.Contains(g.Id)).ToList();
return View(pv);
1 回答
您需要在lambda表达式之外调用
GetUserId()
,因为Linq to Entities无法将其转换为相应的SQL(当然,GetUserId()
没有SQL替代方法):