Могу ли я получить доступ к состоянию объекта объекта данных в LINQ to SQL? - PullRequest
4 голосов
/ 10 мая 2011

Привет У меня есть метод для сброса объектов данных путем вызова DataContext.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, Entity);.

Уловка в том, что некоторые объекты, переданные методу, являются объектами, которые были получены из текста данных и были изменены, но некоторые другиеновые объекты.Новые объекты не были присоединены к текстовому тексту и отбрасываются.

Когда вызывается DataContext.Refresh для неприкрепленных объектов, я получаю System.ArgumentException, так как DataContext не знаком с ним.

Есть ли способ получить состояние отслеживания (как определено здесь: http://msdn.microsoft.com/en-us/library/bb386982.aspx) отдельного объекта, чтобы я мог выяснить, является ли он измененным объектом или новым объектом?

Привет

1 Ответ

5 голосов
/ 10 мая 2011

Вы можете сделать это:

var changes = DbContext.GetChangeSet();
if(changes.Updates.Contains(EntityToCheck))
  //Changed state
else if(changes.Inserts.Contains(EntityToCheck))
  //New state
else if(changes.Deletes.Contains(EntityToCheck))
  //Delete state
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...