0

私の場合は、WCF を使用して sqlserver データベースからデータテーブルを返します。高頻度での wcf メソッドの使用。そのため、データベースにより多くのストレスがかかります。httpキャッシュのようにwcfでキャッシュを使用して、有効期限を設定できますか。有効期限内に、キャッシュされたデータテーブルを返し、有効期限外に、sqlserver からデータを再度選択します。thx、私はstackoverflowを使用するのは初めてで、中国出身です。英語が下手で申し訳ありません。ps: 私の wcf ケースでは、ホストとして iis ではなく winform/console を使用します。

4

2 に答える 2

4

.NET 4.0 以降を使用している場合は、MemoryCacheクラスを使用できます。例えば:

ObjectCache cache = MemoryCache.Default;

DataSet次のような行でキャッシュに保存できます。

cache["MyDataSet"] = myDataSet; // myDataSet is your DataSet

次に、次のロジックを使用して を取得できますDataSet

if (cache["MyDataSet"] != null)
{
    // Get your DataSet from the database
}
else
{
    myDataSet = (DataSet)cache["MyDataSet"];
}

また、キャッシュ内の特定のアイテムの削除と有効期限のポリシーを設定できるようにするCacheItemPolicyを見てください。

于 2013-05-24T05:14:35.243 に答える
0

このようなものはあなたのニーズを満たしますか? これは疑似コードですが、要点を理解していると思います。

static DataTable dt;
static DateTime LastPulled;

public static void GetData()
    {
    if(LastPulled==null || DateTime.Now-LastPulled > new TimeSpan(5))
        {
        //Retrieve DataTable from database
        }
     return dt;
    }

また、WCF でのキャッシュも参照してください。

于 2013-05-24T04:06:56.717 に答える