0

EntityFrameworkを使用してデータベースと対話するサービスレイヤーアプリケーションを作成しています。

個々の「作業単位」をusingブロックで囲み、データコンテキストを初期化します。

ただし、サービスアプリケーションを使用しているアプリケーションにデータベースエラーを伝えるために、いくつかの例外をスローする必要があります。だから私はこのようなことをしています:

using (dbcontext = new DbContext())
{
 throw new Exception("Error while Saving data");
}

誰かがこれが大丈夫かどうか確認できますか?例外がスローされた後でも、Entity Frameworkのデータコンテキストは正しく破棄されますか?

4

2 に答える 2

1

はい。使用中のブロックは、ブロックtry/finally内のロジックを破棄してコンパイルするときにブロックに変換されfinallyます。

ただし、メソッドが例外をスローした場合、例外は外部にスローされませんDispose

于 2012-08-03T08:31:24.137 に答える
1

はい、これは正しいです。MSDNから:

usingステートメントは、usingステートメントの終わりに達したとき、または例外がスローされ、コントロールがステートメントの終わりの前にステートメントブロックを離れた場合に、終了できます。

そうは言っても、私はそれよりも具体的な例外を投げExceptionます。

于 2012-08-03T08:31:59.423 に答える