When I set db.Entry(episode).State = EntityState.Deleted
EF removes episode from my List and throws a collection was modified enumeration operation may not execute
.
Here is my code:
public async Task UpdateAsync(List<Episode> episodes)
{
using (var db = new DbContext())
{
var serie = await db.Series.Include(s => s.Episodes).SingleOrDefaultAsync(s => s.Id == id);
foreach (var episode in serie.Episodes)
{
var modifiedEpisode = episodes.Where(e => e.Id == episode.Id).SingleOrDefault();
//was deleted
if (modifiedEpisode == null)
{
db.Entry(episode).State = EntityState.Deleted;// episode is removed from serie.Episodes throwing exception
continue;
}
}
var addedEpisodes = episodes.Where(v => v.Id == Guid.Empty).ToList();
serie.Episodes.AddRange(addedEpisodes);
await db.SaveChangesAsync();
}
}
How can I delete episodes?