public async Task Delete(MarkovModel markovModel) { Context.Entry(markovModel).Collection(x => x.States).Query() .Include(x => x.Snapshots) .Include(x => x.Transitions).Load(); foreach (var state in markovModel.States) { foreach (var transition in state.Transitions) { Context.Remove(transition); } foreach (var snapshot in state.Snapshots) { Context.Remove(snapshot); } Context.Remove(state); } Context.Remove(markovModel); await Context.SaveChangesAsync(); }