Как при большом количество запросов вернуть из БД каждый объект только 1 раз?
Сабж. Есть метод в WebApi
public string Get()
{
using(ApplicationContext db = new ApplicationContext())
{
var Domain = db.Domain.Where(x => x.TryChek == null).Where(b => b.InProgress == null).FirstOrDefault();
Domain.InProgress = true;
db.SaveChanges();
Console.WriteLine("Выдали " + Domain.Name);
return JsonSerializer.Serialize(Domain);
}
}
По задумке метод должен выбирать из бд первый объект подходящий по фильтрам, ставить этому объекту temp.InProgress = true
сохранять и возвращать его. И больше этот объект по идеи не должен попасть в выборку.
Но в консоле я вижу как один объект выдается по несколько раз, от 2 до 8.
Я предполагаю что объект не успевает сохранится и его берет другой поток. Пробовал оборачивать вlock
, не помогает. Как исправить?