EF使ってちょろちょろ作ってるけど、発行してるSQLが微妙な感じがたまにする。

特にidentity使ってるテーブルにインサートするとき、インサート文に↓の奴がくっつく。

SELECT ID
FROM [dbo].[TABLENAME]
WHERE @@ROWCOUNT > 0 AND [TABLENAME] = scope_identity()

インサートした直後のidの値をとってるっぽい。インサート後にそのオブジェクトのIDに勝手にID振ってくれてるけど、それようのクエリでしょうね。ただ、クエリとしては遅くないんだけど、プロファイラで見ると、Readsが大きいし、CPUを割とくってる。大量に発行すると致命的な気がするのですが・・・。 インサート直後にそのオブジェクトのID見たいとかあんまりないからなぁ。

んーインサート系は自分でオブジェクトから動的にクエリ作るの作らないとダメかな。