Linq to Enities: набор результатов не обновляется после вызова хранимой процедуры - PullRequest
2 голосов
/ 10 ноября 2009

В LINQ to Entities я сопоставляю набор результатов хранимой процедуры с сущностью.

Внутри хранимой процедуры я выполняю некоторые операторы обновления и возвращаю набор результатов, выполняя запрос SELECT и сопоставляя этот набор результатов с сущностью.

Строки базы данных обновляются корректно, но возвращаемые объекты не отражают изменения. Вместо этого данные перед обновлением возвращаются?

Есть предложения?

Спасибо. Abe

Ответы [ 2 ]

2 голосов
/ 10 ноября 2009

На самом деле, оказывается, метод DataContext.Refresh решил мою проблему в http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.refresh.aspx

Вот мой код:

db.Refresh(System.Data.Objects.RefreshMode.StoreWins, affectedProjectTasks);

Спасибо, Марк, за то, что указал мне правильное направление! Abe

1 голос
/ 10 ноября 2009

Являются ли рассматриваемые объекты уже кэшированными в контексте? (т.е. вы уже опрашивали их?)

Если это так, менеджер идентификации всегда вернет вам исходный объект (вместо создания нового объекта с той же идентификацией в том же контексте). Следовательно, для данных, которые уже были прочитаны (другими запросами), учитываются только поля идентификатора / первичного ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...