过滤嵌套实体

时间:2014-05-27 09:55:14

标签: vb.net entity-framework

我正在使用带有实体框架的vb.net。

我遇到这种情况:

我有2个彼此相关的表:Table1(Id,vl1,vl2,vl3,vl4)和Table2(id,nm1,nm2,nm3,Table1ID)

我正在逐步创建一个查询:

Query = from t in context.Table1 select t

if condition1 then query = query.Where(Function(t2)t2.vl1> 10)

如果是condition2,那么Query = query.Where(Function(t2)t2.vl2< 4)

.....

现在,如果Condition3为true,我想从Table1中选择vl3 = 0的所有记录,我想过滤嵌套表Table2,其中nm1 =" x"。

如果condition3则查询= query.where(函数(t2)t2.vl3 = 0)??????????????

如何在查询中过滤table2?

谢谢!

1 个答案:

答案 0 :(得分:0)

Table1应该是一个符合Table2中Childs实体的字段。

假设该字段名为Table2,您可以这样做:

 dim q = query.where(Function(t2) t2.vl3=0)
              .Select(Function(row) New With {.T1Row = row,
                                              .ChildsT2Filtered = T1Row.Table2.Where(Function(xRow) xRow.nm1="x")}