0

アプリ、ユーザー、グループの 3 つのエンティティがあります。それらはすべて多対多の関係にあります。彼らは次の属性を持っています

App: AppID, AppName
Group: GroupID, GroupName
User: UserID, UserName 

特定のユーザーのアプリの一覧を取得したい。例: 'Thor' は 'The Avengers' グループに属しています。「アベンジャー グループ」は、「フライング」、「スーパー パワー」、「ライトニング ストライク」などのアプリにアクセスできます。

まず、'User' テーブルと 'Group' テーブルを結合して、'Thor' が属するグループ ('The Avenger' グループ) を取得します。次に、「グループ」テーブルと「アプリ」テーブルを結合して、グループ「The Avenger」がどのアプリにアクセスできるかを確認します。次に、ユーザー「Thor」のアプリのリストを取得します

私の現在のlinqクエリはすべてのアプリを返します(ユーザー「Thor」のアプリではありません)

これはlinqクエリです

AppListViewModel apps = new AppListViewModel {
                Apps = from u in User
                               from g in u.Group
                               from a in g.App
                               where u.UserName=="Thor"
                               select new AppDTO {
                                   AppID=a.AppID,
                                   AppName=a.AppName,

                               },
};
4

2 に答える 2