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: ユーザー エンティティ Role: ロール エンティティ。ユーザー ID 1 のデータベースにはデータがないため、何も返されません。

戻り型データは NHibernate.Linq.Query で、null ではありません。

ToList(); に変換しようとすると、次のエラーがスローされます。

「インデックスが範囲外でした。負ではなく、コレクションのサイズ未満である必要があります。パラメーター名: インデックス」

空の結果セットを処理するにはどうすればよいですか?

4

1 に答える 1

1

これはうまくいくはずです...

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