[英]ObjectContext instance has been disposed, async method, ToListAsync(), SqlQuery
我見過與此類似的其他問題,但沒有一個足夠接近以幫助我解決這個問題。 我在我的存儲庫中收到錯誤消息:
return await Context.Database.SqlQuery<MemberField>(sqlstring).ToListAsync();
我該如何解決? 它以前在沒有任何代碼更改的情況下工作過,所以我知道我所要做的就是保持上下文活躍。 我嘗試這樣做:
Context.Configuration.LazyLoadingEnabled = false;
但它沒有幫助。 這是在 ASP.NET 樣板項目中。
謝謝!
在構造函數中我有:
public MyRepository(IDbContextProvider<MyDbContext> dbContextProvider) : base(dbContextProvider)
然后我有一個 AbpDbContext 類:
public class MyDbContext : AbpDbContext{
public MyDbContext() : base("Default"){}
public MyDbContext(string nameOrConnectionString) : base(nameOrConnectionString){}
}
您可以從這里獲取一個模板解決方案,就像我正在嘗試使用的項目一樣: http : //www.aspnetboilerplate.com/
更新:ABP 處理創建和處理數據庫連接,所以我沒有任何代碼來顯示這樣做。
我能夠使其正常工作,但在存儲庫內的 using 語句中處理 dbcontext。 這可以防止 Abp 框架處理 dbcontext 並過早處理它。 所以它目前看起來像這樣:
public List<MyObjs> GetObjs(){
using(var db = new MyDbContext()){
var query = from x in db.mytable
select x;
return query.ToList();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.