手动附加后,EF解析导航属性

凯特

我正在使用实体框架。我使用以下命令将代表数据库中实体的POCO对象附加到我的dbcontext中:

var entity = new MyEntity() { ID = 1, AnotherItemID = 10 };
context.Set<T>().Attach(entity);

到目前为止,一切都很好。我可以访问集合并使用添加的实体。它以“未更改”状态添加。但是,它只是POCO,而不是代理。因此,当我尝试访问导航属性(例如myEntity.AnotherItem)时,只会得到一个空值。

有谁知道是否有一种方法可以让EF解析以这种方式附加的POCO类的导航属性?还是将POCO强制转换为代理类的方法?

谢谢

更新有两种方法可以解决此问题(当然也可能有其他方法!)。一种是下面的答案中的“显式加载”选项。允许延迟加载工作的另一种方法是,在创建要附加的实体时使用DBSet Create方法而不是POCO new关键字。有关此的更多信息:

EF4.3代码优先,MVC,在POST操作中附加后的延迟加载

八叶球菌

您可以使用“显式加载”

 //When you want to load a reference navigation property
 context.Entry(entity).Reference(p => p.AnotherItem).Load(); 

 //When you want to load a collection navigation property
 context.Entry(post).Collection(p => p.Items).Load(); 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

DbContext需要手动加载导航属性

来自分类Dev

在MVC 6中手动加载导航属性

来自分类Dev

在MVC 6中手动加载导航属性

来自分类Dev

手动将现有对象分配给Entity Framework导航属性

来自分类Dev

无法确定由*类型的导航*表示的关系。手动配置关系,或使用忽略此属性

来自分类Dev

手动解析简单语法

来自分类Dev

解析-手动设置对象ID

来自分类Dev

手动生成的TopoJSON无法解析

来自分类Dev

手动安装后卸载Redis

来自分类Dev

手动安装后卸载Redis

来自分类Dev

AngularJS UI路由器手动导航

来自分类Dev

在EF中手动调用DbMigration.Up

来自分类Dev

从tomcat中的put请求手动解析参数

来自分类Dev

参数解析器之后的Java手动验证

来自分类Dev

如何手动设置已解析的dns记录

来自分类Dev

手动将RedirectToRouteResult解析为查看结果

来自分类Dev

手动编码命题逻辑解析器

来自分类Dev

无法评估手动创建的等值〜解析树

来自分类Dev

如何手动设置已解析的dns记录

来自分类Dev

在C中手动解析JSON消息

来自分类Dev

部署Salesforce项目后自动执行手动任务

来自分类Dev

手动删除pip包后如何删除

来自分类Dev

升级Ubuntu后无法手动登录

来自分类Dev

Django修改后的手动控件

来自分类Dev

手动触发定序后,NSInvalidArgumentException

来自分类Dev

手动隐藏后的自举模式错误

来自分类Dev

手动刷新后未引用ScriptResource.axd

来自分类Dev

手动删除分区后无法安装Ubuntu

来自分类Dev

自动合并失败/手动合并后的步骤