есть many-to-many
public class ApplicationUser
{
public List<Group>...
}
public class Group
{
public List<ApplicationUser>...
}
EF их отлично коннектит через замечательную табличку (см. ниже). Но при попытке выйти из группы ничего не происходит, БД остаётся нетронутой:
...
var group = await _context.Groups.FirstOrDefaultAsync(...)
var user = await _context.Users.FirstOrDefaultAsync(...)
...
group.ApplicationUsers.Remove(user);
user.Groups.Remove(group);
await _context.SaveChangesAsync();
...
Я примерно понимаю в чём проблема (полтора часа чтения стаковерфлоу не прошли даром), но не понимаю как это исправить не ломая всё
Я увидел что можно ручками создать many to many, зарегать для этой промежуточной таблицы DbSet и все операции делать через него, но на данном этапе это будет лютейший дрочь, есть ли какой-то лайфхак как можно удалить юзера из группы и группу из юзера, не меняя схему БД?
Если у тебя много ко многому, у тебя должно удаляться с одной и той же таблички
_context.Groups.Include(g => g.ApplicationUsers).FirstOrDefault(g => g.Id == 100500)
Найс! Почему-то в другом месте когда я юзал Include мне оно выпадало в вечную рекурсию. Спасибо!
Тогда появятся орфанные юзера или группы (юзера без групп или группы без юзеров) не уверен что это ок для требований
Это как раз не беда, просто переделывать все сервисы под то, что бы использовать новую таблицу не было сило
так ты ведь с бд все равно это сможешь достать
Обсуждают сегодня