Entity Framework에서 생성 된 컨텍스트 개체는 스레드로부터 안전하지 않습니다.Entity Framework 스레드 보안
각 스레드마다 하나씩 두 개의 별도 엔티티 컨텍스트를 사용하면 (각각 SaveChanges()
) - 스레드로부터 안전할까요?
// this method is called from several threads concurrently
public void IncrementProperty()
{
var context = new MyEntities();
context.SomeObject.SomeIntProperty++;
context.SaveChanges();
}
내가 엔티티 프레임 워크 컨텍스트 컨텍스트의 현재 값이 신선한 지 아닌지를 추적 '카운터'변수의 일종을 구현 생각합니다.
- 별도의 스레드에서 호출 된 위 코드를 사용하면 increment/savechanges를 잠글 필요가 있습니까?
- 그렇다면이 간단한 시나리오에서이를 수행하는 기본 방법은 무엇입니까?
* "컨텍스트를 수신하여 저장소를 변경하는 데 필요한 방법을 호출, 아주 쉬운 방법으로 그렇게 할 수 Ninject에 대한 확장이 있습니다
http://elvanydev.com/EF-DbContextFactory/
Entity Framework는 스레드로부터 안전하지 않습니다. "* - 왜 그렇게 말합니까? – RPM1984
MSDN을 참조하고 있습니다 : http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.aspx "ObjectContext 클래스는 스레드로부터 안전하지 않습니다." – Harper
네, 그건 당신이 의미하는 줄 알았던 것입니다. 그래서 OC에 싱글 톤을 사용하면 안됩니다. – RPM1984