언급이있는 아래 코드를 사용하여 데이터베이스에서 데이터를 가져 오려고하면 DbContext has been disposed error
이 표시됩니다.
DbContext가 삭제되었으므로 작업을 완료 할 수 없습니다. nopcommerce
이 문제를 해결하는 방법은 무엇입니까?
public class ExampleService<T> where T : Example
{
protected readonly IRepository<T> _exampleRepository;
public ExampleService()
{
_exampleRepository= EngineContext.Current.Resolve<IRepository<T>>();
}
public IList<T> GetService()
{
var query = _exampleRepository.Table;
return query.ToList();
}
}
ExampleService 클래스가 코드에 의해 제대로 삽입되고 생성되지 않으면 그 문제가 발생한 이유를 볼 수 없습니다. Autofac은 그런 일을 방지하기 위해 enties lifecicle을 관리합니다. 그래서 샘플에 누락 된 코드가 있다고 가정합니다. ExampleService를 인스턴스화하는 방법을 검토하면됩니다. 어쨌든이 주석의 주된 이유는 리소스 로케이터를 사용하는 대신 생성자에서 종속성을 주입하는 것을 기억하는 것입니다. ResourceLocator는 가능한 경우 피할 수있을 정도로 나쁜 패턴입니다. 분명히,이 경우에는 그럴 이유가 없습니다. –