私はいくつかのデータベースアクションを実行するメソッドを持つクラスを持っています。
データベースアクセスに使用されるメソッド呼び出しで、既存の(オープンな)コンテキストを送信できるようにします。
ただし、コンテキストが送信されない場合は、新しいコンテキストを作成します。既存のオブジェクトへの参照を作成するときに呼び出されますか?
メソッドコールに含まれていれば、オブジェクトが破棄されていないことを確認したいだけです。
呼び出されたメソッドで使用範囲が使用されているときにオブジェクトが破棄されますか?
// DbService class
class DbService
{
private void SomeDbAction(SomeDbContextObject backendContext = null)
{
using (var context = backendContext ?? CreateNewContextObject())
{
// Some actions using the context
}
}
}
// Call from another class
class Temp
{
void DoSomeThing()
{
var existingContext = new SomeDbContextObject();
dbService.SomeDbAction(existingContext);
// Is dbService disposed here?
UseContextForSomethingElse(existingContext);
}
}
dbServiceはここに配置されていますか?はい、 'using'ステートメントを残しておいてください。 – spender
'using'は' Dispose() 'を呼び出します。 'Dispose()'が呼び出されないようにするには、 'using'ステートメントを使わないでください。 –
Disposeはusingステートメントの閉じ括弧に達したときに呼び出されます。自動廃棄を望んでいないので、usingステートメントを削除し、準備ができたら手動でexistingContext.Disposeを使用します – MikeT