繁体   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