我的案例是使用 WCF 从 sqlserver 数据库返回数据表。一些 wcf 方法在高频下使用。所以它会给数据库带来更大的压力。我们可以在 wcf 中使用缓存,如 http 缓存,设置过期时间。在过期时间,返回缓存的数据表,过期时间,再次从sqlserver中选择数据。thx,我是第一次使用stackoverflow,我来自中国,对不起我的英语不好。ps:我的 wcf 案例使用 winform/console 作为主机,而不是 iis。
问问题
4073 次
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 回答