ASP.Net Cache проблема / вопрос. Где и как кешировать. | Код ADO.Net костюма - PullRequest
0 голосов
/ 18 сентября 2011

Я занимаюсь разработкой приложения электронной коммерции ASP.Net. Я использую ASP.Net Web Forms. Когда я заканчиваю полное приложение, я подумал о кэшировании некоторых данных, чтобы производительность приложения увеличилась. (плохая идея ... я должен был рассмотреть это с самого начала)

Я не использую встроенные элементы управления такими сетками данных. Я использую MS-Sql.

Я использую базу данных MySql server us и пользовательские элементы управления UserControls, которые я разрабатываю. (Пользовательский код ADO.Net)

Для получения данных из базы данных я использую:

Объект, представляющий поля таблицы IE: Если моя таблица (MyTable) имеет:

ID , Title, Date

Я создам, создаст объект, подобный приведенному выше:

public class MyTable{
  public int ID {get;set;}
  public string Title {get;set;}
  public Datetime Date {get;set;}
}

Для управления полями из таблицы я использую что-то вроде выше:

public class MyTableDatabaseManager{
   //Insert a row 
   public bool insertMyTable(MyTable item){
     //...Open a mysql connection , do job , close it.
   }
   //Update a row 
   public bool updateMyTable(MyTable item){
     //...Open a mysql connection , do job , close it.
   }
   //Delete a row 
   public bool deleteMyTable(MyTable item){
     //...Open a mysql connection , do job , close it.
   }
   //Get one row
   public MyTable deleteMyTable(int id){
     //...Open a mysql connection , do job , close it.
   }
    //Get some rows or all of them
   public List<MyTable> deleteMyTable(int limit,int page,bool Ordering){
     //...Open a mysql connection , do job , close it.
   }
}

Мои вопросы:

Как я могу хранить некоторые данные в кеше, чтобы мне не приходилось постоянно общаться с базой данных?

Как программно сбросить кэш при изменении данных?

(я знаю, как, но куда я положил код: P он может быть в файлах с выделенным кодом, когда я делаю изменения или вставляю некоторые значения, или где-то еще?)

Кэш вывода у меня не работает, потому что большая часть предоставленных данных зависит от пользователя. (около 80% из них)

Большое спасибо:)

1 Ответ

3 голосов
/ 18 сентября 2011

Просто вставьте в кеш с ключом, который будет вашим идентификатором пользователя или что вы хотите изменить его.

Cache.Insert(yourUserIdOrWhateverKey, yourObject); 

http://msdn.microsoft.com/en-us/library/6hbbsfk6%28v=VS.100%29.aspx

Обратите внимание на это средство просмотра кэша (также проверьте ссылку msdn выше)

http://authors.aspalliance.com/aldotnet/examples/cacheviewer.aspx

Для удаления вы можете просто позвонить

Cache.Remove(yourKey);

См: http://aspdotnetfaq.com/Faq/How-to-clear-your-ASP-NET-applications-Cache.aspx

Чтобы проверить, находится ли ваш предмет в кеше, просто наберите

var yourCachedObject = (CustomClass)Cache["YourUserKey"];
if(yourCachedObject == null)
{
   //it wasnt in the cache
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...