Reputation:
I have a many-to-many relation
class User
{
int Id { get; }
int Name { get; }
List<UserClass> UserClasses { get; }
}
class Class
{
int Id { get; }
int Name { get; }
List<UserClass> ClassUsers { get; }
}
class UserClass
{
int UserId { get; }
User User { get; }
int ClassId { get; }
Class Class{ get; }
}
And am trying to create a query which will fetch me a grouping of classes per user, the result should be something like this
[
{
UserId: '1',
Classes: [{
Name: 'c1',
},{
Name: 'c2',
},{
Name: 'c3',
},{
Name: 'c4',
}],
},
{
UserId: '2',
Classes: [{
Name: 'c2',
},{
Name: 'c7',
}],
},
]
Upvotes: 0
Views: 434
Reputation: 1264
If your model isn't exposed as User
having a List<Class> Classes
then you will need to keep the junction object in the query.
Users?$select=UserId&$expand=UserClasses($expand=Class($select=Name))
should return
[
{
"UserId": "1",
"UserClasses": [
{
"Class": { "Name": "c1" }
},
{
"Class": { "Name": "c2" }
},
{
"Class": { "Name": "c3" }
},
]
},
{
"UserId": "2",
"UserClasses": [
{
"Class": { "Name": "c1" }
},
{
"Class": { "Name": "c4" }
},
]
}
]
Upvotes: 1