アプリケーションでSqlDependencyサービスを作成しました。クエリを手動で入力すると完全に機能しますが、ワイルドカードを含めることはできません(理由はよくわかりません)。
例えば:
//Using this SqlCommand will work
new SqlCommand("SELECT [employees].[name] FROM [dbo].[employees]", sqlNotificationConn)
//But this one won't
new SqlCommand("SELECT [employees].* FROM [dbo].[employees]", sqlNotificationConn)
//And this one won't either
new SqlCommand("SELECT * FROM [dbo].[employees]", sqlNotificationConn)
したがって、基本的には、DbContextに、処理するすべてのフィールドを含む完全なSELECTコマンドを生成させたいと考えています。
Linq 2 SQLでは、このサービスを使用してdbContext.GetCommand(.....);
EF 4.0(または4.1でしたか?)では、dbContext.employee.ToTraceString();
しかし、EF 4.4では、そのSELECTクエリ文字列を生成するものが見つかりません...。