Entity Framework 호출에 이상한 오류가 발생했으며 동일한 ObjectContext
을 사용하여 동시 멀티 스레드 액세스가 가능하다는 가능성을 모색 중입니다.ThreadLocal EF 컨텍스트 만들기
ThreadLocal 안에 생성 컨텍스트를 넣어서 모든 스레드에 대한 새 컨텍스트를 만들려고했습니다.
private System.Threading.ThreadLocal<EF.XYZEntities> threadLocalContext = new System.Threading.ThreadLocal<EF.XYZEntities>(() => new EF.XYZEntities(connectionString));
private EF.XYZEntities context { get { return threadLocalContext.Value; } }
이것은 작동하지 않습니다. 해당 컨텍스트를 처음 사용할 때 오류가 발생합니다.
Invalid object name 'dbo.Site'.
어떻게 작동합니까?
나는 쓰레드 내에서 컨텍스트를 생성하고,'using' 블록으로 싸서, 멋지게 범위가 지정 될 것이다. 컨텍스트를 만드는 것은 비싼 작업이 아닙니다 ... –
아마도 관련이 있을까요? http://stackoverflow.com/questions/9415955/c-sharp-working-with-entity-framework-in-a-multi-threaded-server – rene