2015-10-21 4 views
0

У меня возникает сценарий, который выглядит следующим образом.context.savechanges impact - Telerik EF concept

У меня есть две таблицы с именем parent и child.

По получении данных из базы данных, я получил 1 строку против родителя и 2 строки против ребенка.

На этом этапе, если я создаю новый дочерний элемент и добавлю его в контекст и применим изменения сохранения, так что теперь моя база данных содержит 1 строку против родителя и 3 строки против дочернего элемента, но мой контекст содержит только 2 строки против дочернего ...

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

Parent objparent = context.Parent(p => p.id = 4); 
objparent.count(); //1 
objparent.Child.count();//2 

Child objchild = new Child(); 
objchild.name = "abc"; 
objchild.parentid = 4; 

context.add(objchild); 
context.savechanges(); 
//do i need to refresh whole context to have newly added child under given parent 
//or i should only fetch all childs against parent id 4 and re-attach them to context 
+0

В этом сценарии вы должны использовать управляемые свойства навигации. Http://docs.telerik.com/data-access/developers-guide/crud-operations/manage-navigation-properties/developer-guide-manage-navigation-properties- обзор –

+0

@DamyanBogoev: Привет, спасибо за ответ, да, я уже пользуюсь управляемым навигационным свойством. я спрашивал, если я делаю savechanges здесь, как я обновляю свой контекст с этой вновь введенной записью, т. е. до того, как ребенок обновится как 2 строки в контексте, после обновления я хотел иметь 3 строки в этом контексте – tango

+0

должен писать objParent.childs = context.Child (c => c.parentID = 4); для заполнения данного контекста с помощью новой записи – tango

ответ

0

Для будущих читателей я хотел отметить этот вопрос так, как было решено, спасибо Дамиану Богоеву за руководство.

Я наблюдал за функциональностью фреймворка сущностей, которая является моментом, когда новая запись сохраняется в базе данных путем вызова context.savechanges(), она будет автоматически выбрана текущим контекстом вместе с идентификатором идентификатора (последовательностью/вновь вставленным первичным ключом) и был установлен как «управляемый загруженный»

Значит, я могу использовать недавно вставленную строку в текущем контексте без повторной выборки/обновления моего контекста.

 Смежные вопросы

  • Нет связанных вопросов^_^