Parallel.Foreach issue

c#, parallel.foreach, task-parallel-library

Solution

I resolved this with moving the using bracket into the Parellel loop. Reason was because the dbcontext is not thread-safe.

Problem

I have a `Parallel.Foreach` loop that is giving me grief, and wanted to see if one of you guys could shed some light on this. Little to be found googling this unfortunately. Here is the knot: My foreach loop : ``` string [] Ids = {........}; //a string array of ID's using(IUnitOfWork uw = GetUnitOfWork()) { Parallel.ForEach(Ids, currentRecord => { var x = (from h in uw.GetRepository<EFEntity1>().AsQueryable() join k in uw.GetRepository<EFEntity2>().AsQueryable() on h.ID equals k.ID join l in uw.GetRepository<EFEntity3>().AsQueryable() on h.FundAccount equals l.FundAccount where h.ID == currentRecord select new { h.x, h.y, h.z}); foreach (var v in x) { if (v.SomeMember == "foo") { } Console.WriteLine("Output : {0} {1} {2} {3} {4} ", v.x, v.y, v.z); } }); } ``` The LINQ statement is where I get an `ArgumentExcpetion` thrown saying: An item with the same key has already been added Any clues to what might be wrong with my implemntation of the foreach loop in this scenario? Appreciate the support. Thanks

Original source