Entity framework 使用子实体上的条件Linq一对多(父实体和子实体)

Entity framework 使用子实体上的条件Linq一对多(父实体和子实体),entity-framework,linq,Entity Framework,Linq,我有三个实体 Form FormProducts (one to Many attach to Form) FormFields (one to Many attach to Form) 当我得到表单时(使用下面的代码),FormProducts和FormFields被隐式地附加到表单上,这就是我们所需要的 Form result = Forms.Where(f => f.Code == "form1").FirstOrDefault() 到目前为止还不错,但新的要求进来了,我们还

我有三个实体

Form
 FormProducts (one to Many attach to Form)
 FormFields (one to Many attach to Form)
当我得到表单时(使用下面的代码),FormProducts和FormFields被隐式地附加到表单上,这就是我们所需要的

Form result = Forms.Where(f => f.Code == "form1").FirstOrDefault()
到目前为止还不错,但新的要求进来了,我们还需要检查活动产品的产品标准

有简单的方法吗?或者我应该明确地使用连接所有三个实体

我看起来很简单:)

更新: 对不起,如果我没有说清楚, 考虑表

中的以下数据
Form 
id, code(unique)
1, form1, 
2, form2
3, form3

FormProduct
id, formid, name, status
1, 1, prod1, true
2, 1, prod2, false
3, 1, prod3, true

FormField
id, formid, name
1, 1, field1
2, 1, field1
3, 1, field1

我喜欢获取form1及其所有formFields和所有活动formProducts。这意味着不应包括Prod2

我不确定这是否是实现这一目标的最佳方式,但这就是我目前实施的方式,直到我找到更好的方式

Form result = Forms.Where(f => f.Code == "form1").FirstOrDefault()
result.FormProducts = result.FormProducts.Where(f.FormProducts.status == "active").ToList();

您不能筛选子项:如果包含父项,则必须同时包含其所有子项。@DasBinkenLight实现它的最佳方法是什么?您可以在内部查询中使用条件。Forms.Where(f=>f.Code==“form1”和&f.FormProducts.Any(p=>p.status==“active”)).FirstOrDefault()
Form result = Forms.Where(f => f.Code == "form1").FirstOrDefault()
result.FormProducts = result.FormProducts.Where(f.FormProducts.status == "active").ToList();