クライアント側でキャッシュを使用できます。
それがここで提案されたものです: C#でデータベースからデータテーブルにデータを同期/チェックする方法は?
そこで提案された ASP.NET キャッシュの代わりに、Caching Application Block を使用できます: http://msdn.microsoft.com/en-us/library/ff649093.aspx
この SO スレッドでこの例を見つけることができます: Microsoft Enterprise Library Caching Application Block not thread safe?
キャッシュは、データベース内のすべての変更を X 秒ごとにチェックする責任があり、変更が見つかった場合は、データベースから再ロードされ、アプリケーションで更新する必要があります。
キャッシュを使用して、これをよりスマートに行うことができます。
すべての INSERT、UPDATE、および DELETE 命令を受信するサーバー上にサービスを作成し、それらをデータベースに適用してから、すべてのクライアントのキャッシュに無効化メッセージを送信して、データを更新するように伝えます。
これは、起動時にクライアントが無効化通知サービスにサブスクライブし、変更があったときに通知を受けることを意味します。
これに興味がある場合は、ここに素晴らしいチュートリアルがあります。キャッシュであり、これがどのように機能しているか。