大家好,有个问题希望和大家一起讨论一下,希望高手们能多多指教;
我在一个项目中为了提高系统的效率,把几个访问频繁的DataSet保存在缓存中了,
后来又想根据需要提取缓存的DataSet中的部分数据来做成一个新的DataSet,于是
我先把缓存的DataSet的所有数据都赋值给一个新的DataSet,然后删除新的DataSet中
的部分数据来满足新的需要,结果当我再次调用缓存的DataSet时,发现缓存的DataSet
中的数据也被删除了,
DataSet My_CSCache = _cache.Get(key) as DataSet;
if (My_CSCache==null)
{
Insert(key,Get_DataSet(Sql),null,Seconds);
}
DataSet dts1 = new DataSet();
dts1 = _cache.Get(key) as DataSet;
for(int i = 0;i < (dts1.Tables[0].Rows.Count/2); i++)
{
dts1.Tables[0].Rows[i].Delete();
}
于是只好在每次访问缓存的DataSet时加上下面的程序来取消删除操作
DataSet My_CSCache = _cache.Get(key) as DataSet;
if (My_CSCache==null)
{
Insert(key,Get_DataSet(Sql),null,Seconds);
}
DataSet dts1 = new DataSet();
dts1 = _cache.Get(key) as DataSet;
dts1.RejectChanges();
虽然这样能够实现我要的功能,但我不知道大家有没有更好的办法。如何做
可以消除2个DataSet中的数据修改会同步修改的问题。