我正在得到与实体框架4.0的一些意想不到的行为,我希望有人能够帮助我理解这一点。 为解决这一问题,我正在利用北风数据库。 我也正在使用默认代码生成器(不是波科或自我跟踪)。 我期望,在我没有把这些物体分开的情况下,我询问框架只进行一轮访问的背景。 如果我放弃zy装,我就这样做了。 目前,在我的申请中,我正直地转而处理zy问题,然后将其 back倒,以便我能找到理想的行为。 这远远不错,因此请提供帮助。 这里是一个能够表明我问题的好榜样。
Public Sub ManyRoundTrips()
context.ContextOptions.LazyLoadingEnabled = True
Dim employees As List(Of Employee) = context.Employees.Execute(System.Data.Objects.MergeOption.AppendOnly).ToList()
makes unnessesary round trip to the database, I just loaded the employees
MessageBox.Show(context.Employees.Where(Function(x) x.EmployeeID < 10).ToList().Count)
context.Orders.Execute(System.Data.Objects.MergeOption.AppendOnly)
For Each emp As Employee In employees
makes unnessesary trip to database every time despite orders being pre loaded.
Dim i As Integer = emp.Orders.Count
Next
End Sub
Public Sub OneRoundTrip()
context.ContextOptions.LazyLoadingEnabled = True
Dim employees As List(Of Employee) = context.Employees.Include("Orders").Execute(System.Data.Objects.MergeOption.AppendOnly).ToList()
MessageBox.Show(employees.Where(Function(x) x.EmployeeID < 10).ToList().Count)
For Each emp As Employee In employees
Dim i As Integer = emp.Orders.Count
Next
End Sub
为什么是进行无常的回程旅行的法典的首批部分?