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