Правильный способ загрузки данных из базы данных один раз при загрузке страницы в MVC 4 Razor

1

Мне нужно получить некоторые данные из базы данных и загрузить их в db когда страница загружается изначально. В частности, я не могу определить подходящее место/способ запуска этого метода. Если я поместил его в свой ActionResult Index() (который является страницей, на которой отображаются данные), он работает, но я заканчиваю вывод дубликатов всех моих значений на каждом обновлении страницы. Каков правильный способ сделать это?

public class HomeController : Controller
{
    private MyDataContext db = new MyDataContext();

    public void loadFromTable()
    {
        IEnumerable<Task> tasks = readAllEntities();
        foreach (Task item in tasks)
        {
            db.MyDatas.Add(item);
            db.SaveChanges();
        }
    }
    ...
  • 1
    Если результат является общим для всех сеансов, вы можете использовать Cache . Если данные зависят от пользователя, вы можете использовать Session . В обоих случаях я создал бы своего рода менеджер, который бы помещал вещи в Cache / Session, а когда меня спрашивали о значениях, проверял, существуют ли они в Cache / Session, а если нет, получал их из БД.
  • 0
    Может быть, вы могли бы еще немного объяснить, чего вы пытаетесь достичь? для меня БД и база данных звучат довольно похоже.
Показать ещё 3 комментария
Теги:
database
razor
asp.net-mvc
asp.net-mvc-4

1 ответ

2
Лучший ответ

Поэтому я решил проблему, добавив

if (db.MyDatas.Count() == 0)
    loadFromTable();

для обоих моих двух взглядов. Если у кого-то есть лучшее решение, я был бы рад услышать это!

  • 0
    Работает для меня! Зачем перегружать это? :) Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню