实体框架 - 仅加载选定的属性

Bon*_*viD 6 asp.net entity-framework-4

我没有亲身体验EF,因此不知道问题的相关性.假设我有名为Student(StudentId,Name,Username,Address,DOB,DeptId,NavigationProp1Id ....)和Depatement表(Deptd,DeptName.,NavigationProPid)的表.因此,如果像这样的表结构,当我使用'contex.Studnets'时,我可以获得所有prpoerties及其包括导航属性,如果表2具有其他导航属性,它也可以加载.我对么 ?

如果是,是否会导致任何性能问题?我是否可以仅加载来自实体的选定属性,例如仅来自Studnet enity的UserName,Addres?

任何帮助将不胜感激

Thnx和问候

骨多

Lad*_*nka 20

没有立即加载导航属性.如果您使用Include方法,则会显式加载它们;如果您在第一次访问它们时也懒惰地加载它们(这也是您在调试器中看到它们=通过调试器访问导致延迟加载的原因).

您只能加载选定的属性 - 它称为投影.限制是您无法使用属性子集加载Student实体.您需要新类或匿名类型:

var query = context.Students.Select(x => new 
                {
                   x.UserName,
                   x.Address 
                }); 
Run Code Online (Sandbox Code Playgroud)