В настоящее время для обновления списка я удаляю все элементы и вставляю все с нуля. Помимо неэффективности, это делает журналы аудита нечитаемыми, особенно когда списки велики.
В моем сервисе приложений я обновляю список следующим образом:
private async Task UpdateCourseTrainers(Course courseUpdateInputs)
{
await _courseTrainerRepository.DeleteAsync(cd => cd.CourseId == courseUpdateInputs.Id);
foreach (var trainer in courseUpdateInputs.CourseTrainers)
{
await _courseTrainerRepository.InsertAsync(trainer);
}
}
Я думаю, это выглядело быкак то так:
private async Task UpdateCourseTrainers(Course courseInputEntity, Course savedCourse)
{
var toInsert = courseInputEntity.CourseTrainers.Except(savedCourse.CourseTrainers).ToList();
var toRemove = savedCourse.CourseTrainers.Except(courseInputEntity.CourseTrainers).ToList();
await _courseTrainerRepository.DeleteAsync(???)
foreach (var trainer in toInsert)
{
await _courseTrainerRepository.InsertAsync(trainer);
}
}
Любая помощь будет оценена. Спасибо