Перезагрузка навигационных свойств после отсоединения нового объекта - PullRequest
1 голос
/ 29 марта 2011

Я использую Entity Framework с объектами POCO и имею следующий сценарий:

Я создаю новый родительский объект и добавляю к нему дочерний объект.Затем я сохраняю изменения и отсоединяю родительский объект.В этот момент его дочерняя коллекция становится пустой.

parent = new Parent() { label = "Test" };
parent.Children.Add(new Child() { label = "Test" });
context.Parents.AddObject(parent);
context.SaveChanges();
context.Detach(parent);

Когда я повторно присоединяю родительский объект к другому контексту, мне нужно явно загрузить соответствующее свойство для доступа к дочерней коллекции.

context.Parents.Attach(parent);
context.LoadProperty(parent, p => p.Children);

Есть ли способ для свойств навигации выполнить отложенную загрузку вместо ручной загрузки каждого из них?

Если вместо создания нового объекта я получаю существующий объект, проблема не возникает:коллекция детей становится пустой при отсоединении;но после прикрепления дети загружаются автоматически.

1 Ответ

3 голосов
/ 29 марта 2011

Вместо:

parent = new Parent() { label = "Test" };

Попробуйте использовать:

parent = context.CreateObject<Parent>();
parent.label = "Test";
...