У меня есть проект ASP.NET Web API.
База данных: PostgreSQL
У меня есть 2 объекта - Пользователь и Группа. Это отношение многих ко многим, таким образом, существует 3 класса - User, Group и UserGroup. Проблема возникает, когда я хочу получить все группы, в которых находится пользователь - цикл ссылок. Мне просто нужны группы, а не пользователи в них. Я не уверен, как этого добиться, сейчас я просто использую это:
var user = await _context.Users.Include(u => u.UserGroups).ThenInclude(ug => ug.Group)
.FirstOrDefaultAsync(u => u.Email == email.ToLower());
var userGroups = user.UserGroups.Select(ug =>
{
var group = ug.Group;
group.UserGroups = null;
return group;
}).ToArray();
Чтобы было ясно, моя проблема не в ошибке JSON, я просто не хочу, чтобы эти объектыбыть включенным.
Я думал, что выбор отдельных столбцов в базе данных может помочь, но я не думаю, что это хороший подход, так как вам придется менять его каждый раз, когда вы меняете объекты.
EDIT1
Мне нужно вывести пользователя с массивом его групп.
EDIT2
Вывод кода, показанного выше, таков:
{
"id": "7e445bd2-4257-40ad-bed1-be975e562fa0",
"registeredAt": "2019-10-06T16:51:39.235955",
"email": "kozak.vaclav@kobrasoft.cz",
"firstName": "Vaclav",
"lastName": "Kozak",
"locale": "cs-CZ",
"groups": [
{
"id": "7e445bd2-4257-40ad-bed1-be975e562fa0",
"groupType": 0,
"userGroups": null
}
]
}
, и это именно то, чего я хочу, но я просто ищу более разумное решение, чем мое.