Есть ли какая-то особая причина, по которой добавление элемента в коллекцию EF4.1, сохранение его в базе данных и последующий выбор этой коллекции приведет к странным результатам?
Когда я делаю начальную загрузку, все элементы в коллекции имеют тип System.Data.Entity.DynamicProxies.MyClassName_LongString
, поэтому в коллекции работает следующее:
var y = MyCollection.Where(x => x.ValidTo == null).First();
Да, в коллекции всегда есть предмет, который соответствует этим критериям. Всегда.
Однако, если я выбираю коллекцию, добавляю в нее новый элемент, сохраняю изменения и затем снова выбираю коллекцию в том же контексте, последний элемент в коллекции (новый) не является динамическим прокси, но вместо этого мой тип POCO (Moo.Model.MyClassName
).
Выполнение того же выбора сверху на , что * версия 1013 * коллекции выдает исключение нулевой ссылки - даже если последний элемент (нединамический прокси) действительно соответствует критериям, которые у меня есть подтверждено просмотром коллекции вручную ...
Загрузите коллекцию из другого контекста после изменений, и поведение не будет отображаться само по себе - все они являются динамическими прокси-серверами, и выбор работает.
Кто-нибудь имеет представление о причинах такого поведения?