LINQ to SQL не обновляется при изменении данных в базе данных

У меня есть эта проблема, когда после поля (скажем, поле3 в таблице MyTable) обновляется в базе данных, MyTable.Field3 (в С#) все еще возвращает старое значение.

Я подозреваю, что есть кеширование...?

Как заставить его:
Прочитать значение из базы данных?
ИЛИ
Обновить значение в классе MyTable?

Или я ничего не пропустил? Я новичок в LINQ

Спасибо заранее.

Ответы

Ответ 1

DataContext.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, entity);

Если вы хотите обновить весь набор сущностей, самым простым способом, вероятно, просто создать новый DataContext и requery для всего.

Ответ 2

Вы недопонимаете модель. Linq to SQL не проходит в базу данных каждый раз, когда вы запрашиваете участника. Когда вы извлекаете объект из базы данных, он сохраняется в памяти как объект Linq to SQL, и там он стоит. Вы не получите обновленную версию объекта до тех пор, пока вы снова не запросите базу данных.