これに似た他の質問がありましたが、これを把握するのに十分近いものはありません。ここで私のリポジトリにエラーが表示されます:ObjectContextインスタンスが破棄されました。asyncメソッド、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ハンドルcrデータベース接続を食べて処分するので、私はそのことを示すコードはありません。
コンテキストを作成/廃棄していますか?それを見せてください。 公共MyRepository(IDbContextProvider dbContextProvider):私は、コンストラクタに –
DavidG
塩基(dbContextProvider) そしてIはAbpDbContextクラスがある: パブリッククラスMyDbContext:AbpDbContext { パブリックMyDbContext():ベース( "デフォルト") {} public MyDbContext(string nameOrConnectionString):base(nameOrConnectionString){} } – paladyr
最新の編集はDavidGが求めているものではありません。コンストラクタを表示していますが、コンテキストのライフサイクルについては何も表示していません。 – Igor