簡體   English   中英

ObjectContext 實例已被釋放,異步方法,ToListAsync(),SqlQuery

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM