Мне нужно получить 1000 строк из базы данных и в то же время пометить их как «в процессе». Таким образом, другой поток не сможет взять те же 1000 строк и обработать их.
С linq я делаю что-то вроде этого:
msgs = (из m в database.messages где (m.status == MESSAGESTATUSINIT) выберите m).Take(1000).ToList();
в идеале я бы одновременно установил статус MESSAGESTATUSPROCESSING. Конечно, это ДОЛЖНО быть атомарным.
Любые идеи? Или он вернулся к SQL?
Благодарность!