实体框架:加载第二级导航属性

3
我有以下三个表格:
客户: id 客户名称
项目: id clientid(指向Clients.id的整数引用) 项目名称 项目状态(指向ProjectStatuses.id的整数引用)
项目状态: id 状态名称
我可以成功选择单个客户,并在需要时通过以下方式加载所选客户的项目:
selectedClient.Projects.Load();
但是如何使其也加载项目状态名称呢?
1个回答

4
selectedClient.Projects.ProjectStatuses.Load()

编辑

我猜这是一对多的关系,

这应该可以工作。

selectedClient.Projects.First().ProjectStatuses.Load()

或者你也可以直接在查询中加载它:

context.Clients.Include("Projects.ProjectStatuses");

谢谢,但那个方法不起作用。它似乎只允许我进入导航属性的一个级别。 - Shane Grant
它为什么不起作用?你的尝试是否会抛出错误,还是只是静默地无法加载嵌套属性?尝试将Include语句串联起来,例如context.Clients.Include("Projects").Include("Projects.ProjectStatuses") - Dan J
我已经接近了。现在它所做的是列出类名而不是值。像这样:"Project.Data.ProjectStatus"。你是对的,会有一个客户和一堆项目,每个项目都有不同的状态。 - Shane Grant
@djacobson 我没有使用 Include 来加载项目,因为除非用户点击客户端,否则我不希望它们被加载。我只在选择后加载所选客户的项目。 - Shane Grant
@Shane 给定示例应仅为列表中的第一个客户项目加载 ProjectStatuses... - moi_meme

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接