0

コレクション内のコレクションでいくつかのフィールドを選択しようとしています。Roles->Users (name and ID) select many を使用してフラット化されたデータを取得できましたが、今度はそれをコレクション オブジェクトにマージして、json が正しくフォーマットされるようにする必要があります。可能であれば動的 linq でこれを行いたいと思います。そうしないと、オブジェクトを手動でマージする必要がある場合があります。どんな助けでも素晴らしいでしょう。

User->User_Roles->Roles (結合テーブルとしての User_Role との多対多の関係)

q = query.SelectMany("USER_ROLES","new (inner as myUSER,outer as myROLE) ").SelectD("new (myROLE.ID as ROLE_ID, new( myROLE.NAME, myUSER.USER.FIRSTNAME,myUSER.USER.ID)as user)")

結果は次のようになります。

 Role A-> User A
 Role A-> User B    ..notice the repeat of "Role A" 
 Role A-> User C

そのはず

     Role A -> User A
             + User B
             + User C
4

2 に答える 2

0

私は JSON 初心者ですが、既にアイテムのコレクションを持っているとしましょう。

Role A-> User A
Role A-> User B
Role A-> User C
Role B-> User D
Role B-> User E
Role B-> User F
Role C-> User G
Role C-> User H
Role C-> User I

名前をつけよう

UserRoleCollection

ただ使う

var res = UserRoleCollection.GroupBy(item => item.Role);

あなたはIGrouping<TRole, TUser>このように見えるでしょう

Role A ->     User A
              User B
              User C
Role A ->     User D
              User E
              User F
... and so on
于 2012-10-02T15:24:11.207 に答える
0

探している結果を得るには、SelectMany の前に GroupBy を使用します。

何かのようなもの:

User_Roles.GroupBy(r => r.Roles.Role)
            .Select(g => new { Role = g.Key, Users = g.SelectMany(u => u.Users.Name) });
于 2012-10-02T18:52:41.927 に答える