mic*_*p78 5 entity-framework entity-framework-6.1
我不确定我是接近错误的方式还是默认行为,但它没有像我期望的那样工作......
这是两个样本类......
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Department Department { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
第二个是部门
public class Department
{
public string Name { get; set; }
public List<Person> People { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
上下文配置
public MyDbContext() : base("DefaultConnection")
{
this.Configuration.ProxyCreationEnabled = false;
this.Configuration.LazyLoadingEnabled = false;
}
public DbSet<Person> People { get; set; }
public DbSet<Department> Departments { get; set; }
Run Code Online (Sandbox Code Playgroud)
我试着加载名字来自'Smith'的人
var foundPeople
= context
.people
.Where(p => p.LastName == "Smith");
Run Code Online (Sandbox Code Playgroud)
上面的查询加载foundPeople只有FirstName和LastName没有Department对象.这是一个正确的行为,因为我的LazyLoading已关闭.这也是预期的.
现在在另一个带有Eager加载部门的查询中,
var foundPeople
= context
.people
.Where(p => p.LastName == "Smith")
.Include(p => p.Department);
Run Code Online (Sandbox Code Playgroud)
上面的查询加载了找到FirstName,LastName,Department with Department-> Name以及Deparment-> People(那个部门的所有人,我不想要的人),我只想加载Included属性的第一级.
我不知道这是一个预期的行为还是我犯了一些错误.
有没有办法只加载包含属性的第一级,而不是完成图或包含属性的所有级别.
| 归档时间: |
|
| 查看次数: |
2742 次 |
| 最近记录: |