C# 将导航属性限制为具有实体框架的父项

C# 将导航属性限制为具有实体框架的父项,c#,entity-framework,C#,Entity Framework,我有一个主-细节关系,其中细节记录也有一个以父/子形式指向自身的链接(一个指向自身的主细节) 让我们将它们称为订单/项目/项目子项 每个项目和项目子项目都有一个指向订单的外键引用 子项具有返回到项的外键引用,因此允许项嵌套或潜在的汇总 但是,由于子项也与订单有关系,每当我使用navigation属性访问项目时,我也会获取项目 是否有方法限制框架内的导航属性,例如 order.Items.Where(i => !i.ParentId.HasValue) 而不必在代码的每一点上都这样做,因为

我有一个主-细节关系,其中细节记录也有一个以父/子形式指向自身的链接(一个指向自身的主细节)

让我们将它们称为订单/项目/项目子项

每个项目和项目子项目都有一个指向订单的外键引用

子项具有返回到项的外键引用,因此允许项嵌套或潜在的汇总

但是,由于子项也与订单有关系,每当我使用navigation属性访问项目时,我也会获取项目

是否有方法限制框架内的导航属性,例如

order.Items.Where(i => !i.ParentId.HasValue)

而不必在代码的每一点上都这样做,因为我只需要父项。

您可以添加一个属性

public ICollection<Item> ItemsWithoutParent {
    get {
        return this.Items.Where(i => !i.ParentId.HasValue);
    }
}
非父级的公共ICollection项{
得到{
返回this.Items.Where(i=>!i.ParentId.HasValue);
}
}

并将Items属性声明为private。

我希望能用edmx实现这一点,但这将解决这个问题。