В кратце код такой:
var _dbContext = CreateDbContext();
var groups = _dbContext.Some (какой-то LINQ запрос, без материализации);
await Parallel.ForEachAsync(groups, async (group) => { тут модицифирую group элементы});
//после цикла, change tracker не помечает энтити как modified. Работает только со след строкой
_dbContext.ChangeTracker.DetectChanges();
Есть мысли почему так? _dbContext один везде.
Странно что оно вообще работает
dbcontext не тред сейф
Я знаю. Но внутри цикла нет гонки, там просто отдельные группы параллельно пишутся.
Обсуждают сегодня