Я разрабатываю интернет-приложение MVC 5 и задаю вопрос о том, что пользовательский объект находится в объекте ApplicationUser
.MVC 5 - получение объекта ApplicationUser
У меня есть объект public virtual Account account
в объекте ApplicationUser
, который содержит множество максимальных переменных count для объектов в моем приложении MVC 5. Это устанавливается для каждого пользователя, когда пользователь регистрирует учетную запись.
Прежде чем я создам объект модели, я проверяю, не превысил ли пользователь максимальный счетчик для объекта модели. Это делается в классе сервиса для объекта.
Вот пример кода, используемый для объекта файла:
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
ApplicationUser user = userManager.FindByNameAsync(userName).Result;
int maxFiles = user.account.maxFiles;
Я использую много классов обслуживания для многих объектов с подобным кодом, чтобы получить ApplicationUser
объект.
Мой вопрос заключается в следующем: вместо того, чтобы каждый раз извлекать объект ApplicationUser
для каждого класса обслуживания, можно ли сохранить этот объект при входе пользователя в систему, а затем обратиться к этому объекту до создания объекта модели? Если да, где я могу сохранить этот объект для указанной цели?
Кроме того, сколько памяти/полосы пропускания используется при извлечении объекта ApplicationUser
? Существует ли минимальная используемая память/пропускная способность, так что мне не нужно беспокоиться о памяти/пропускной способности при каждом вызове объекта ApplicationUser
до создания объекта модели?
Заранее спасибо.
Если эта проверка является довольно критической (т. Е. Если она изменяется, вам нужно отражать изменения по мере их возникновения), то я бы сказал, что придерживайтесь ее как есть, это не так, что ** много накладных расходов Если честно. Если это не критично, подумайте о сохранении его в файле cookie/session/cache для более быстрого поиска. – mattytommo
Я использую класс 'MemoryCache' в .NET Framework для кэша данных для моих пользователей. Вы можете настроить его, чтобы кэшировать каждый пользовательский объект столько, сколько захотите, и это уменьшит количество обращений к вашему источнику персистентности (базе данных). –