[英]Entity Framework Core get entity without related entities
我一直在对此进行搜索,但是到目前为止,还没有找到一个合适的解决方案。 我正在尝试从数据库中获取一个没有附加相关实体的实体。
该函数如下return context.Entity.SingleOrDefault(n => n.Name == name)
,其中context is a DbContext
。
到目前为止,答复仅包含一个实体,但添加了50个我不需要的“子”实体。
从数据库获取单个实体的最佳方法是什么?
使用EFC2.1 pre release build
还发现,如果使用DbContext.Entity.AsNoTracking
,则可以获取没有DbContext.Entity.AsNoTracking
的实体。
不确定在进行更改并调用DbContext.saveChanges()
之后是否将保存完整实体
您必须启用延迟加载,只需将属性添加到类中即可。
public virtual ICollection<ChildType> NavigationProperty;
这是用于加载相关数据的非常有用的文档。
我最近发现,您也可以DbContext.Entity.AsNoTracking()
使用DbContext.Entity.AsNoTracking()
。
在获取实体时使用linq查询将导致linq中包含的所有相关实体也将被获取。
假设您有a Teacher, a Student and a Classroom entity
。 一位老师可以有多个学生和教室。 您想找到教室A的所有老师和所有男学生,所以您会这样做
DbContext.Teachers.Where(x => x.Classroom.Name = "A" && x.Student.Gender = "Male")
自从您在linq表达式中调用它们之后,这将获取所有基础Classrooms
和Students
的Teacher entities
。 由于只需要教师实体,因此应使用以下内容:
DbContext.Teachers.AsNoTracking().Where(x => x.Classroom.Name = "A" && x.Student.Gender = "Male")
使用AsNoTracking()
您可以声明不想要基础数据,而只需要它来过滤想要的实体。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.