запросить присоединенные объекты - PullRequest
3 голосов
/ 22 мая 2011

Я делаю несколько команд вставки, прежде чем делать SaveChanges.

Есть ли способ запросить присоединенные сущности (которые я вставил прямо сейчас перед SaveChanges), чтобы проверить, была ли добавлена ​​или обновлена ​​конкретная запись?

1 Ответ

2 голосов
/ 22 мая 2011

Да, есть способ.ObjectContext экземпляр предлагает свойство с именем ObjectStateManger.ObjectStateManager управляет всеми присоединенными объектами и знает их состояние:

ObjectStateEntry entry = context.ObjectStateManager.GetObjectStateEntry(attachedEntity);
EntityState state = entry.State;

Если вам нужно получить все измененные или добавленные объекты, вы можете использовать:

var entities = context.ObjectStateManager
                      .GetObjectStateEntries(EntityState.Added | EntitiSate.Modified)
                      .Select(e => e.Entity);

Вы можете использовать в дальнейшем OfType, чтобы выбрать только объекты некоторого типа.Вы также можете использовать эту логику SaveChanges, как описано много раз для переполнения стека - например, здесь .

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