2012-01-24 6 views
0

私は自分のプロジェクトにEFを使用しています。すべてのデータの変更を保存すると、中央の場所は次のようにオーバーライドSaveChangesメソッドでエラーを捕捉することがあります:すべてのクエリをキャプチャする方法どのようにEFのクエリエラーをキャプチャするには?

public override int SaveChanges(System.Data.Objects.SaveOptions options) 
     {   
      try 
      { 
       return base.SaveChanges(options); 
      } 
      catch (Exception ex) 
      { 
     //capture error here     
       throw ex; 
      } 
     } 

同様の中のエラー(いずれかのSPからとLINQまたはクエリに基づいてエンティティセットとクエリ)方法?

更新:すべてでは不可能な場合は、すべてのストアドプロシージャの1か所でエラーをキャプチャできますか?

+0

catch DbException – IamStalker

答えて

0

データコンテキストでクエリを監視する場合は、EFProfilerをお勧めします。市販の製品ではありますが、組み込みの警告を使用すると、多くのトラブルを回避できます。

+0

私はここでアプリケーションのエラーログを作成します。 – KentZhou

1

これはこのレベルでは不可能です。エラーの原因となったクエリまたはストアドプロシージャは取得されません。おそらくcustom provider wrapperとそのレベルのカスタムエラー処理で可能かもしれませんが、その場合は逆の状況になります。あなたはクエリを知っていますが、それらの原因となったソースコードはわかりません(マッピングをリバースエンジニアリングせずにエンティティセットが関与しているかどうかはわかりません)。

関連する問題