Объекты контекста, созданные Entity Framework, не являются потокобезопасными.
Что делать, если я использую два отдельных контекста сущностей, по одному для каждого потока (и вызов SaveChanges()
для каждого) - будет ли это потокобезопасным?
// this method is called from several threads concurrently
public void IncrementProperty()
{
var context = new MyEntities();
context.SomeObject.SomeIntProperty++;
context.SaveChanges();
}
Я считаю, что сущность framework context реализует какую-то переменную 'counter', которая отслеживает, являются ли текущие значения в контексте свежими или нет.
- С приведенным выше кодом - вызванный из отдельных потоков - мне все еще нужно блокировать инкремент /savechanges?
- Если да, то каков предпочтительный способ выполнить это в этом простом сценарии?