6

ユーザーが複数のロールに所属でき、ロールが複数の権限を持つことができるデータベースがあります。どちらの関係も多対多です。ユーザーが持っている権限のリストを照会して生成したい。Roles テーブルにクエリを実行して、ユーザーがメンバーであるロールを確認し、各ロールに含まれる個別のアクセス許可をクエリして確認することで、これを達成しようとしています。ただし、LINQを正しく取得できないようです。

var permissions = RoleRepository.Get()
    .Where(x => x.Users.Contains(user))
    .Select(x => x.Permissions);

上記のコードは、アクセス許可のリストのリストを提供します。アクセス許可のリストが必要なだけです。とにかく(LINQに)これらすべてのリストの結合を取ることはありますか?または、これを達成するためのより良い方法はありますか?

4

1 に答える 1

6

代わりSelectManyに、SelectManyリストのリストを返すクエリをフラット化します

だからこれを試してみてください:

var permissions = RoleRepository.Get().Where(x => x.Users.Contains(user))
                                .SelectMany(x => x.Permissions);

これがお役に立てば幸いです!!

于 2012-12-28T16:53:43.143 に答える