/// <summary> /// Дополнительные изменения в БД после обновления данных сущности в БД. /// </summary> /// <param name="db">контекст БД</param> /// <param name="entity">обновляемая в БД сущность</param> public void AfterUpdate(ApplicationDBContext db, Room entity) { if (UserIds == null) { return; } if (entity.Users == null) { entity.Users = new List <User>(); } var userIdsToBeAdded = UserIds; var usersToBeDeleted = entity.Users .Where(us => UserIds.All(usId => usId != us.Id)).ToList(); foreach (var user in usersToBeDeleted) { entity.Users.Remove(user); } userIdsToBeAdded = UserIds .Where(usId => entity.Users.All(us => us.Id != usId)).ToList(); foreach (var userId in userIdsToBeAdded) { entity.Users.Add(db.Set <User>().Find(userId)); } }