晚安发生什么事,我开始在ASPNET核心1.1,我也用实体架构核心1.0。关于实体框架,在运行时
我做了一些课程,我已经理解如何带来数据,保存等。我想了解通过“布下”会发生什么,因为我见过的所有教程都解释了如何使用它,但我不了解它的简单“一步一步”。
我的第一个问题很简单,什么是在某种情况发生时,我们预约,我们在手的BD的“语境”。例如:
var viewModel = new InstructorIndexData();
viewModel.Instructors = await _context.Instructors
.Include(i => i.OfficeAssignment)
.Include(i => i.CourseAssignments)
.ThenInclude(i => i.Course)
.ThenInclude(i => i.Enrollments)
.ThenInclude(i => i.Student)
.Include(i => i.CourseAssignments)
.ThenInclude(i => i.Course)
.ThenInclude(i => i.Department)
.AsNoTracking()
.OrderBy(i => i.LastName)
.ToListAsync();
注意:示例本身并不重要,我想了解到底发生了什么。
首先怀疑,当我有上下文实例“_context”什么我手头上?我已经在上下文中填充了所有已填充的对象,因为当我添加“Includes”和“ThenIncludes”时,或者在那一刻,我只是“挂载查询”,看起来像是什么样子?如果是,我怎么能看到这个查询是安装?
第二个问题:是否实体框架使用LINQ?我知道这是另一回事,但有时候感觉就像是同一件事!你在这两个地方找到Wheres和Orders By,我不知道什么时候使用这个或那个,如果你能向我解释,我会非常感激。
第三个问题:它总是让我困惑的是与实体查询返回了我,这真的很奇怪,以至于在我的例子见人也不是“typam”的回归。它有什么样的模式回报,为什么它会在每种情况下返回不同的东西?
谢谢大家!
只是为了一个小小的注脚添加到这个答案,你可以看到你的翻译的查询是这样的:https://msdn.microsoft.com/en-us/library/system.data.objects.objectquery.totracestring.aspx –
@TravisActon谢谢;包括在内。 – BradleyDotNET
感谢aloot @BradleyDotNET。所以才完成。当我添加“Include”和“ThenInclude”时,EF不做任何事情?没有什么像每个新的“包含”一样的新搜索。这就像构建查询每个“include”和“thenInclude”追加,然后在最后一次执行Querys使用查询这些连接,是吗?例如,最后在“ToListAsync”执行一次? –