3

少しオーバーエンジニアリングされたコードがあり、 とDataContext一緒に使用する必要がありますSqlConnectionこのMSDNの記事は言う

開いている接続を提供すると、DataContext はそれを閉じません。したがって、正当な理由がない限り、開いている接続で DataContext をインスタンス化しないでください。

私のコードでは、効果的にこれを持っています:

using( var connection = new SqlConnection( connectionString ) ) {
    connection.Open();
    // some action
    using( var context = new DataContext( connection ) ) {
       //some action with the context object
    }
    //more action with the connection
}

私には問題ないように見えます-外側usingが折りたたまれると、接続が閉じられます。しかし、そうすべきではないという言い回しがあります。

上記のスニペットは 2 つのクラスを正しく一緒に使用していますか? 私は何か問題を予期する必要がありますか?

4

2 に答える 2

3

接続を維持し、すべてのメソッドに接続を渡し、最初に開いて最後に閉じることを意図する必要があります。パフォーマンスを向上させるために、問題はありませんが、面倒に見えます。そして、「接続」は、ビジネスロジック層によって参照される場合でも、渡されます。

たぶんあなたはより良いアプローチを見つけるべきです。:)

于 2012-12-18T15:37:54.450 に答える