私のアプリはハンドラクラスのインスタンスにシングルトンパターンを使用します。シングルトンインスタンスでDBを更新するには?
多分、MyHandlerはDBとの対話を開始する必要があります。だから私はそれをすることができますか?ただ、厳しい
- が
MyHandler
でシングルトンとしてDbContext
を添付:私のビジョンがあります。明らかにそれは悪い考えです。 - 使用ASP.NetコアDIが特徴と
MyHandler
にDbContext
を送るが、例えば「1つの要求につき1つの」など。私は、これは1 using
オペレータを通してそれを実行し、すなわち、アトミックトランザクションとして、例えばのために類似している(MyHandler
がシングルトンである)私の場合で考えますusing(var context = new XDbContext()) {...}
は私のためとして、それは良い方法だが、Entity Frameworkのコア実装のDbContextは、コンストラクタの引数としてDbContextOptions
を必要とします。 XDbContextのためのパラメータのないコンストラクタを宣言すると、例外がスローされます。
:私は、チュートリアルで使用するの
例を工場出荷時の例を発見しましたか?例えば同じように、あなたの 'MyHandler'クラスで' DbContext'特性を持っており、それには、彼らはGCを介して収集することがありますので、あなたが以前のインスタンスを心配する必要はありませんXDbContext' 'のインスタンスを更新し得るのです。私の場合は – Emad
@Emadは 'HandlerEvent'は紺碧サービスバスから到着するメッセージ、すなわち、それはEgorikasの答えは工場出荷時のパターンを使用して同じことをするのに私のポイントがまだ有効である – Mergasov
のhttp-の要求に依存しない処理を行います。私のDbContextプロパティのgetメソッドで、ファクトリのコード全体を作成させることができます。 – Emad