【发布时间】:2017-01-24 07:05:58
【问题描述】:
我目前收到以下错误
“System.NotSupportedException”类型的异常发生在 >EntityFramework.SqlServer.dll 但未在用户代码中处理
附加信息:无法比较“System.Linq.IQueryable`1[[System.Int32, mscorlib, Version=4.0.0.0, >Culture=neutral, PublicKeyToken=b77a5c561934e089]]”类型的元素。仅支持原始类型、>枚举类型和实体类型。
我的代码是
public List<User> GetActiveUsers(IEnumerable<int> officeIDs, string roleID, string query)
{
return (from user in GetDBContext.User
join userRole in GetDBContext.UserRole
on user.UserID equals userRole.UserID
join userOffice in GetDBContext.UserAuthorizedOffice
on user.UserID equals userOffice.UserID
where user.IsActive == true &&
user.UserTypeID == 1 &&
userOffice.IsAuthorized &&
userOffice.Office.IsActive &&
(officeIDs == null || officeIDs.Contains(userOffice.OfficeID)) &&
string.Equals(userRole.RoleID, roleID) &&
(user.FirstName + user.LastName).Contains(query)
select user).ToList();
}
这个问题好像是从线路抛出来的
(officeIDs == null || officeIDs.Contains(userOffice.OfficeID))
如果我删除第一个条件officeIDs == null,查询将完美执行。
谁能解释一下我缺少什么或者为什么会抛出这个错误。
【问题讨论】:
标签: c# .net entity-framework linq