我已经看到了与此类似的其他问题,但没有足够接近我帮我解决这个问题。我在我的存储库中收到错误:
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处理创建和处理数据库连接,因此我没有任何代码可以显示这样做。
答案 0 :(得分:0)
我能够使这个工作,但在存储库中的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();
}
}