Any ideas on why this could be breaking?
foreach (var p in pp)
{
ProjectFiles projectFile = (ProjectFiles)p;
projectFile.Status = Constants.ProjectFiles_ERROR;
projectFile.DateLastUpdated = DateTime.Now;
context.SaveChanges();
}
I read that the workaround the issue, is to retrieve the results in one go before the foreach loop.
But didnt I do that? "pp" is the collection of results in my case
The pp
variable isn't a collection of objects, it's an enumerator that can return objects. While you use the enumerator, the source has to remain open.
Use the ToList
method to realise the enumerator into a collection. That will read all items from the enumerator and close the connection to the source, so that you can use the connection for other things.
foreach (var p in pp.ToList())