如何处理NHibernate LINQ空结果集?

时间:2009-10-21 22:55:11

标签: nhibernate linq-to-nhibernate

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

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

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();

时,它会抛出以下错误
  

“指数超出范围。必须是   非负和小于的大小   集合。参数名称:索引“

如何处理空结果集?

1 个答案:

答案 0 :(得分:1)

这应该有用......

List<Role> list = data.Any() ? data.ToList() : new List<Role>();