0

ASP.NET MVC アプリケーションで LINQ クエリを使用しており、一部のアクションで OutputCache を使用したいと考えています。

これは CommandNotifications で可能になるはずだと聞いています。しかし、それらは自分で作成した SQLCommands にしか当てはまらないようですが、間違っていますか?

特定のテーブルが変更された場合に SQLDependency 通知を送信するように SQL サーバーに手動で指示できますか? はいの場合、どうすればそれらを OutputCache にアタッチできますか?

別の副次的な質問: 強く型付けされたビューでもこれを実行できますか?

前もって感謝します...

4

2 に答える 2

2

LinqToCacheプロジェクトを試すことができます。SQL Server に送信されたクエリがクエリ通知の制限に準拠している限り、LINQ クエリにSqlDependencyをフックして、まさにあなたが求めていることを行います。Linq-to-SQL の場合、これは主に、モデル デザイナーでテーブルの完全な 2 部構成の名前を指定することで構成されます (つまり、 だけではありません)。残念ながら、Linq-to-EF の場合、EF がクエリをフォーマットするために選択する方法は、QN の制限と互換性がありません。dbo.TableTable

于 2010-08-02T03:35:59.597 に答える
0

しかし、それらは自分で作成した SQLCommands にしか当てはまらないようですが、間違っていますか?

これらは、事前に知ることができる唯一のコマンドであるため、「自己作成」コマンドにのみ役立ちます。特定の LINQ クエリの通知を作成する場合は、クエリと共にコードでメソッドを呼び出すだけです。

特定のテーブルが変更された場合に SQLDependency 通知を送信するように SQL サーバーに手動で指示できますか?

もちろん。通知を行う:

SELECT * FROM TABLENAME;

はいの場合、どうすればそれらを OutputCache にアタッチできますか?

コマンドを作成し、キャッシュの依存関係を作成し、キャッシュに追加するときにそれを参照します。通常どおり、global.asax.cs で依存関係の通知を初期化します。

強く型付けされたビューでもこれを行うことができますか?

意味がありません。MVC では、ビューでデータ アクセスを行うべきではありません。

于 2010-05-04T14:53:44.633 に答える