我得到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管理着物體的生命線,防止這樣的事情發生。所以我假設您的示例中缺少代碼。只需查看您實例化ExampleService的方式。無論如何,這個評論的主要原因是記住你要在構造函數中注入你的依賴,而不是像你那樣使用資源定位器。 ResourceLocator是一種足夠糟糕的模式,可以儘量避免。顯然,在這種情況下,沒有理由。 –