【发布时间】:2016-04-12 07:06:12
【问题描述】:
我有 3 个不同的实体:
E1, E2, E3
E1 有一个属性是 E2 的 ObservableCollection。 E2 有一个属性是 E3 的 ObservableCollection。
通过 linq 查询,我想以我得到的 E1 作为起点来获取所有 E3。
我试过类似的东西:
Query = Query.Where<E3>(i => E1.E2List.Select(ep => ep.E3List.Select(ai => ai.id))
.Contains(i.id));
基本意思:从 E1 获取 E2 列表中 E3 列表中所有 E3 的 id 列表
但正如你猜想的那样,这是行不通的。
My starting point is this :
//make the array
E3[] array;
//get all E3 datas
IQueryable<E3> Query = DBSetE3.AsQueryable();
而且我的数组中必须有所有结果
所以我的结果应该是:进入数组,所有链接到 E2 的 E3 对象都包含在 E1 中,基于 E1。
例如:
Entity 1| List of E2
E1 | E2A, E2B
Entity 2 | List of E3
E2B | E3C, E3D
E2A | E3E, E3F
当我搜索链接到 E1 的 E3 时,我必须得到 E3C、E3D、E3E、E3F
【问题讨论】: