我没有 EF 的实际经验,因此不知道这个问题的相关性。
假设我有名为 Student 的表(StudentId、Name、Username、Address、DOB、DeptId、NavigationProp1Id...)和 Department 表(Deptd、DeptName.、NavigationProPid)。因此,如果表结构如下所示,当我使用“contex.Studnets”时,我可以获得所有属性,包括导航属性,如果表 2 有其他导航属性,也可以加载它。我对么?
如果是这样是否会导致任何性能问题?我可以仅从实体加载选定的属性,例如仅从学生实体加载用户名、地址吗?
没有导航属性不会立即加载。如果您使用,它们会被显式加载Include
方法或在您第一次访问它们时延迟加载(这也是您在调试器中看到它们的原因=通过调试器访问导致延迟加载)。
您只能加载选定的属性 - 这称为投影。限制是您无法加载带有属性子集的 Student 实体。您需要新类或匿名类型:
var query = context.Students.Select(x => new
{
x.UserName,
x.Address
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)