4

我想检索登录用户的角色列表。

以下是从数据库中读取用户角色的代码段。

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:用户实体角色:角色实体。由于数据库中没有用户 id 1 的数据,因此它不会返回任何内容。

返回类型数据是 NHibernate.Linq.Query 并且它不为空。

当我尝试将其转换为 ToList() 时,它会引发以下错误;

“索引超出范围。必须为非负数且小于集合的大小。参数名称:索引”

如何处理空结果集?

4

1 回答 1

1

这应该工作...

List<Role> list = data.Any() ? data.ToList() : new List<Role>();
于 2010-02-09T11:28:27.857 回答