在哪里存储数据以避免数据库命中?

Ulh*_*ano 4 c# asp.net

我正在使用webmethod从数据库中获取数据并将其存储在静态变量中,这样下次它就不会经常访问数据库becoz.创建静态变量似乎不是一个正确的解决方案,这对于这种情况来说是一个非常有用的东西.

例如

public static List<SupplierGridData> lstFullSupplierData;

public static List<SupplierGridData> GetProductData()
{
    if (lstFullSupplierData == null)
    {
        //first time get data from database
        lstFullSupplierData = new List<SupplierGridData>();
        lstFullSupplierData  = new POProcess().GetInquiryDetails();
    }
    else
    {
        //use lstFullSupplierData which holds data
    }
}
Run Code Online (Sandbox Code Playgroud)

Ada*_*rth 6

你想要的是缓存:

http://msdn.microsoft.com/en-us/library/xsbfdd8c.aspx

更具体地说,缓存数据:

http://msdn.microsoft.com/en-us/library/6hbbsfk6.aspx

还有会话状态:

http://msdn.microsoft.com/en-us/library/ms972429.aspx

这是按应用程序和每用户的形式出现的.您还可以更改会话状态的后备存储.