【发布时间】:2018-04-16 15:00:52
【问题描述】:
我对此进行了一些搜索,但到目前为止还没有找到合适的解决方案。我正在尝试从我的数据库中获取一个没有附加相关实体的实体。
函数如下return context.Entity.SingleOrDefault(n => n.Name == name) where context is a DbContext.
到目前为止,回复仅包含一个实体,但添加了 50 个我不需要的“子”实体。
从数据库中获取单个实体的最佳方法是什么?
使用EFC2.1 pre release build
编辑:
还发现如果使用DbContext.Entity.AsNoTracking,可以得到不带子集合的实体。
不确定在进行更改并调用DbContext.saveChanges()后是否会保存完整的实体
【问题讨论】:
-
在您的 DbContext 构造函数中:LazyLoading = false;
-
@Atlasmaybe 好吧,问题是我在其他大部分时间确实需要连接。我只需要几次没有添加实体的单个实体,所以我宁愿不进行更改
-
将您的导航属性定义为虚拟以启用延迟加载 - public virtual ICollection
NavigationProperty 。 -
那么,为什么不向您的 DbContext 添加另一个构造函数呢?还有另一种选择,例如使用匿名对象仅查询想要的对象,但它比添加另一个构造函数稍微复杂...
-
@Atlasmaybe 试过了,你的答案确实有效。它使我能够在没有所有子记录的情况下获取实体。我决定将 Nish26 的评论作为答案,因为对我来说实施稍微容易一些。
标签: c# entity-framework-core dbcontext