在 2 个跃点中查找 Entity Framework 中的相关项目

Finding related items in Entity Framework across 2 hops

这是我的数据模型的相关部分:

我有一个通用的数据输入屏幕,它知道它在哪个实体上,并构建一个网格来编辑该 table 的数据。在我到达 Promises 之前,一切都很顺利。我编写代码以加载服务下拉列表,然后意识到我没有足够的信息来加载列表。

这是 Promise 的代码:

namespace biz
{
  public class Promise: EFObject<Promise>
  {
    public int Sequence { get; set; }

    public decimal Hours { get; set; }

    [ForeignKey("Service")]
    public int Service_Id { get; set; }

    public Service Service { get; set; }

    public Constraint[] Constraints;
    //public Dollars Allocation { get; set; }
  }

}

作为设计系统的人,我知道我必须只加载属于拥有承诺的包的成员的服务。但作为一个通用的数据输入屏幕,我怎么知道呢?我什么都不会hard-code。

有没有一种方法可以注释承诺以指示可以从中选择服务的服务列表?某种约束 (Service_Id 必须来自 (select Id from Services where Member_Id = ?

Promises 中的任何内容都适用于通用数据输入屏幕,只要它符合逻辑且一致,我就可以将相同的规则应用于实体目录中任何位置的任何输入屏幕。

我根据 修复了外键。

之后,我只需要给网格开脑洞,看看复合外键,得到受Member_Id约束的选择。