你应该首先使用
FirstOrDefault()
然后解析它。否则,linq仍在尝试构建select语句。之后
FirstOrDefault
ToList
应该是这样的:
public static UserDetails GetUser(UserDetails userde)
{
var usr = from u in db.Users
join r in db.Roles on u.RoleId equals r.IdRole
where u.Email == userde.Email && u.Active == true
select new UserDetails { Firstname = u.Firstname,
Surname = u.Surname,
Email = u.Email,
Function = u.Function,
Password = u.Password,
Salt = u.Salt,
UserrolesUnparsed = r.Role1
};
UserDetails details = usr.FirstOrDefault();
details.Userroles = (UserRoles)Enum.Parse(typeof(UserRoles), details.UserrolesUnparsed);
return details;
}