我遇到的情况如下。
我有两个名为父和子的表。
从数据库中获取数据后,我对父项有1行,对孩子有2行。
在此阶段,如果我创建新子项并将其添加到上下文并应用保存更改,那么现在我的数据库包含针对父级的1行和针对子级的3行,但我的上下文仅包含针对子级的2行... < / p>
我是否需要刷新整个上下文或仅刷新该子项以获取上下文中的最新数据库子记录,以便我可以在整个操作期间对新添加的子进行其他操作。
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 :(得分:0)
对于未来的读者,我想将此问题标记为已解决,感谢Damyan Bogoev的指导。
我观察到实体框架功能,即通过调用context.savechanges()将新记录保存在数据库中的时刻,它将自动由当前上下文及其身份ID(序列/新插入的主键)获取并具有州设置为&#39;托管已加载&#39;
意味着我可以在当前上下文中使用新插入的行而无需重新获取/刷新我的上下文。