EF4: фильтр OfType для GetObjectStateEntries - PullRequest
1 голос
/ 13 апреля 2011

Я переопределяю метод SaveChanges в моем тексте данных и имею следующий код:

IEnumerable<BaseEntity> newEntries = ObjectStateManager.GetObjectStateEntries(EntityState.Added).OfType<BaseEntity>();

В моей модели все бизнес-объекты происходят из BaseEntity.Когда я добавляю новый объект «Инвестиции» (также производный от BaseEntity!) В мой текстовый код, приведенный выше код не будет отображать эту сущность в наборе результатов..

Почему OfType<> не распознает, является ли объект производным?

1 Ответ

2 голосов
/ 13 апреля 2011

Это потому, что этот запрос возвращает объекты типа ObjectStateEntry, а экземпляр этого объекта имеет свойство Entity, которое содержит объект вашей сущности.

Попробуйте это:

var IEnumerable<BaseEntity> newEntries = ObjectStateManager
    .GetObjectStateEntries(EntityState.Added)
    .Select(e => e.Entity)
    .OfType<BaseEntity>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...