私はこの質問が何度か前に尋ねられたことを知っていますが、私が探していた答えを得ることができませんでした。 私はリポジトリ(汎用)とUOWパターンを実装していますので、EFを使用して自分のDBにアクセスできます。 UnitOfWorkクラスの一部です:Unit Of WorkパターンでDisposeを正しく使用するにはどうすればいいですか?
protected virtual void Dispose(bool disposing)
{
if (!disposed)
{
if (disposing)
{
entities.Dispose();
}
}
this.disposed = true;
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
質問:誰がvoidを呼び出すのですか?私はその方法の使用法の例を見ていません。この権利は
private BDEntities entities = null;
public UnitOfWork()
{
if (entities == null)
{
entities = new BDEntities();
}
}
です:
これは、ワーク・クラス単位の上部をそれ? 「使用する」を使うべきですか? 「はい」の場合、なぜDisposeメソッドが必要なのですか?
私は、適切かつ簡単な使用法の例を教えていただけますか?
は、ありがとう UOWは通常、依存性注入とAutofacのような依存性注入コンテナと一緒に使用されているのでロテム
ありがとうございます! したがって、基本的に、メソッドは次のようになります。 if(entities == null) { (entities = new BSODEntities()){}; } と私は本当に "使用して"それをカプセル化するので、Disposeメソッドが本当に必要ない?右? –
はい、基本的にどのように使うべきかと思います。 Dispose()メソッドについては、使用ブロックを使用している場合は、オブジェクトの処理が完了した時点で明示的に呼び出す必要はありません。しかし、あなたのクラスでそれを実装する必要があるので、それはusingブロックからのそのカプセル化された呼び出しによって呼び出すことができます。 –