Не обновляются данные в DataGrid после добавления записи в БД

Рейтинг: 2Ответов: 1Опубликовано: 01.11.2014

Имеется база данных, автоматически сгенерированные классы-сущности, DbContext, через который запрашиваю данные из БД используя LINQ. Результаты помещаю в List<>.

private SkladModelContainer context = new SkladModelContainer();

public List<InStock> GetItemsInStock()
{
    var itemList = from items in context.InStock select items;

    List<InStock> list = new List<InStock>();

    foreach (var item in itemList)
    {
         list.Add(item);
    }
    return list;
}

После добавления записи в БД, снова вызываю этот метод, он возвращает старые данные. Смотрю содержимое таблицы через Visual Studio, данные изменились.

P.S. InStock - это View в базе данных. Добавляю запись в таблицу, а данные запрашиваю во View. Но если и его посмотреть через Server Explorer в Visual Studio, то все данные обновлены.

Ответы

▲ 3Принят

Сам нашел ответ, только не хватает баллов уважения для добавления. На самом деле класс DbContext кэширует запросы. Для того, чтобы получить обновленные данные, нужно создать новый экземпляр и повторить запрос. В моем случае ошибка была в том, что создал поле класса типа DbContext и обращался к нему. Нужно было создать его как локальную переменную в методе, тогда он каждый раз будет создаваться заново и кэширования не будет.