Мне нужно получить некоторые данные из базы данных и загрузить их в 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();
}
}
...
Поэтому я решил проблему, добавив
if (db.MyDatas.Count() == 0)
loadFromTable();
для обоих моих двух взглядов. Если у кого-то есть лучшее решение, я был бы рад услышать это!
Cache
. Если данные зависят от пользователя, вы можете использоватьSession
. В обоих случаях я создал бы своего рода менеджер, который бы помещал вещи в Cache / Session, а когда меня спрашивали о значениях, проверял, существуют ли они в Cache / Session, а если нет, получал их из БД.