C# 具有两个外键的导航属性,其中一个外键是硬编码的

C# 具有两个外键的导航属性,其中一个外键是硬编码的,c#,entity-framework,ef-code-first,entity-framework-6,ef-fluent-api,C#,Entity Framework,Ef Code First,Entity Framework 6,Ef Fluent Api,我们有一个表RequestApproval,它使用两个字段来确定唯一性:RequestType和RequestDetailID。每种类型的请求都有自己的详细信息表,其主键映射到审批表的RequestDetailID。没有什么可以防止两个请求详细信息表具有重叠的ID。这就是为什么RequestType字段是唯一约束的一部分。这是为了避免对每种类型的请求都有单独的批准表 我们正在尝试配置请求详细信息表,使其具有导航属性。最初,我们将导航属性配置为: HasMany(r => r

我们有一个表
RequestApproval
,它使用两个字段来确定唯一性:
RequestType
RequestDetailID
。每种类型的请求都有自己的详细信息表,其主键映射到审批表的
RequestDetailID
。没有什么可以防止两个请求详细信息表具有重叠的ID。这就是为什么
RequestType
字段是唯一约束的一部分。这是为了避免对每种类型的请求都有单独的批准表

我们正在尝试配置请求详细信息表,使其具有导航属性。最初,我们将导航属性配置为:

        HasMany(r => r.RequestApprovals)
            .WithOptional()
            .HasForeignKey(q => q.RequestDetailId);
不幸的是,这会获取所有请求类型的批准。似乎没有办法告诉Entity Framework将结果限制为只包含特定
RequestType
的结果


我可以告诉EF按请求类型进行额外筛选吗?即使我必须修改LINQ查询以显式过滤,也没关系。不幸的是,似乎没有办法增加
。包括
来过滤结果。

我找到了这个答案,但很糟糕: