powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / хеширование таблиц
5 сообщений из 5, страница 1 из 1
хеширование таблиц
    #39395029
__Pavel__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую!

Есть БД, работаю с ней через EF.
Есть формочка с кучей комбобоксов и эта формочка открывается очень часто и каждый раз тянет в комбари таблицы из БД, дабы не нагружать клиента решил хешировать эти данные, т.к. это редкоизменяемые справочники, вопрос КАК это сделать?

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

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
namespace MyProject
{
    static class TEMP
    {
        public static List<Type1> _List_Type1;
        public static List<Type2> _List_Type2;
        public static List<Type3> _List_Type3;
    }
}



Но все в один голос твердят, что использование глобальных переменных - это зло и за это я буду гореть в аду, правда ли это?

Рассматривал еще вариант делать локальный ХЕШ в файлах, но уж слишком частно нужно обращаться к этим справочникам...
...
Рейтинг: 0 / 0
хеширование таблиц
    #39395084
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Pavel__,

Вот прям решил хешировать? Не слушай никого - гореть в аду ты будешь совсем по другой причине.
...
Рейтинг: 0 / 0
хеширование таблиц
    #39395110
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Pavel__,

Ты наверное имел в виду кеширование?

Гугли на тему ObjectCache, MemoryCache.
...
Рейтинг: 0 / 0
хеширование таблиц
    #39395322
__Pavel__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Спасибо, все работает, но производительность не замерял.

Вот пример, как я это использую, вдруг кому-нибудь пригодится :)

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
using System.Runtime.Caching; //+ нужно добавить ссылку

// при запуске приложения

MemoryCache.Default.Add(key: "Users", value: DB.Users.Where(i => i.UT_ID == 99).ToList(), policy: new CacheItemPolicy());

// в другом классе

cb.DisplayMember = "ToList()";
cb.ValueMember = "U_ID";
cb.DataSource = (List<User>)MemoryCache.Default.Get("Users");


П.С. прошу прощения за мою опечатку насчет К еширования
...
Рейтинг: 0 / 0
хеширование таблиц
    #39395550
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Pavel__,

Не забывай проверять наличие элемента в кеше перед использованием. Если элемента в кеше нет, заполни его, потом используй. Это основной сценарий. При таком использовании не нужно делать никаких движений при запуске приложения. Всё произойдёт по ходу дела.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / хеширование таблиц
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]