gpt4 book ai didi

c# - 手动附加后 EF 解析导航属性

转载 作者:太空狗 更新时间:2023-10-29 23:13:23 24 4
gpt4 key购买 nike

我正在使用 Entity Framework 。我使用以下方法将表示数据库中实体的 POCO 对象附加到我的 dbcontext:

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

到目前为止一切顺利。我可以访问集合并使用我添加的实体。它以 Unchanged 状态添加。但是,它只是一个 POCO 而不是代理。因此,当我尝试访问导航属性时,例如myEntity.AnotherItem,我只得到一个空值。

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

谢谢

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

EF4.3 Code-First, MVC, Lazy Loading After Attaching in POST Action

最佳答案

您可以使用 Explicity Loading :

 //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();

关于c# - 手动附加后 EF 解析导航属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35724172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com