已经处理了ObjectContext实例,async方法,ToListAsync(),SqlQuery

时间:2017-01-31 20:31:42

标签: c# asp.net boilerplate

我已经看到了与此类似的其他问题,但没有足够接近我帮我解决这个问题。我在我的存储库中收到错误:

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处理创建和处理数据库连接,因此我没有任何代码可以显示这样做。

1 个答案:

答案 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();
    }
}