Entity FrameworkでSQLのログを出すメモ

Entity FrameworkとLINQ、便利なんですけどね。

cakephpのときもそうなんですけど、フレームワークはてきぱきやってくれるのは大変いいのですが、ふとSQLクエリを確認したいときありますよね。

「生で書けばいいじゃない」

せ、せやな!

…でもそれ言ったらおしまいじゃない?

ASP.netでも実際にSQLクエリ正しく発行しているのか確認したいわけですよ。

疑り深いのです、ワタシ。

ちょこっとしたことでできたのでメモです。

こんなプロパティがあるんです。

ようするにDbContextクラスにDatabaseというインスタンスのプロパティがあって、

そいつに「Log」というプロパティがあるんです。以上です。

ちょっと調べればわかるんですよね…よくできてるなあ。

Logプロパティは、Action<T>型なのでラムダで処理かいて終わり。

任意のファイルに出力します。

適時仕込んでもいいけど、プリプロセッサで

デバッグ中は確認します。※”DEBUG”をビルドのオプションで定数にセットしているのが前提

出力内容は以下の感じ。

 

…内容がうざい。とかは言わない。とにかく目的を達したのである。

まとめ

これは便利だ。

自分のような猜疑心の強い古臭いおっさんにはこういうツールが必要だ。

cakephp3のDbugKitみたいなログ出力ほしかったのでね。

まあ複雑な内容のSQLクエリの場合はさすがに「SqlQuery()」で流すけどね。

なにごとも基本熟知しているうえで使用することが望ましい素敵ツールです。(ドヤ