Ответ 1
DataContext.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, entity);
Если вы хотите обновить весь набор сущностей, самым простым способом, вероятно, просто создать новый DataContext и requery для всего.
У меня есть эта проблема, когда после поля (скажем, поле3 в таблице MyTable) обновляется в базе данных, MyTable.Field3
(в С#) все еще возвращает старое значение.
Я подозреваю, что есть кеширование...?
Как заставить его:
Прочитать значение из базы данных?
ИЛИ
Обновить значение в классе MyTable?
Или я ничего не пропустил? Я новичок в LINQ
Спасибо заранее.
DataContext.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, entity);
Если вы хотите обновить весь набор сущностей, самым простым способом, вероятно, просто создать новый DataContext и requery для всего.
Вы недопонимаете модель. Linq to SQL не проходит в базу данных каждый раз, когда вы запрашиваете участника. Когда вы извлекаете объект из базы данных, он сохраняется в памяти как объект Linq to SQL, и там он стоит. Вы не получите обновленную версию объекта до тех пор, пока вы снова не запросите базу данных.