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

本文关键字:框架 实体 属性 导航 | 更新日期: 2023-09-27 17:49:27

我有一个主详细信息关系,其中详细信息记录也有一个以父/子形式链接到它自己(一个主详细信息到它自己)。

我们叫它们Order/Item/Item Child。

每个item和item子条目都有一个指向Order的外键引用。

子节点有一个指向item的外键引用,因此允许item嵌套或可能的rollup。

但是,由于子元素也与订单有关系,因此每当我使用navigation属性访问项目时,我也会获得这些项目。

有没有办法限制框架内的导航属性,比如

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

而不是在每个只需要父项的代码点都这样做。

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

你可以添加一个属性

public ICollection<Item> ItemsWithoutParent {
    get {
        return this.Items.Where(i => !i.ParentId.HasValue);
    }
}