我想检索已登录用户的角色列表。
以下是从数据库中读取用户角色的代码段。
ISession session = NHibernateHelper.GetCurrentSession();
var data = from s in session.Linq<ApplicationUserRole>()
where s.AppUser.ID = 1
select s.Role.Name;
List<Role> list = data.ToList();
AppUser:用户实体 角色:角色实体。 由于数据库中没有用户标识1的数据,因此不会返回任何内容。
返回类型数据是NHibernate.Linq.Query,它不是null。
当我尝试将其转换为ToList();
时,它会抛出以下错误“指数超出范围。必须是 非负和小于的大小 集合。参数名称:索引“
如何处理空结果集?
答案 0 :(得分:1)
这应该有用......
List<Role> list = data.Any() ? data.ToList() : new List<Role>();