如果我的查询看起来像这样:
从这里你可以看到我的架构如下:
SubForm 有许多 Class,每个 Class 又有许多 Term。
我想要的是:
在特定的 Term 中,所有 SubForms 及其 Classes。
现在发生的事情是,我得到了所有具有特定 Term 中任何 Class 的 SubForms。这意味着 SubForm 返回了所有子类,而不仅仅是与 Term 相关的那些。
例如:我有两个术语,一个 SubForm 每个术语有 2 个 classes。这个查询会带回 4 个 classes 而不是那个特定术语中的 2 个。
是否有任何 Include('Expression') 可以用来表示我只想基于条件包含所有 classes?或者我的查询有问题吗?
var forms = repo.GetForms().Where(f => f.SubForms.Any(sf => sf.Classes.Any(c => c.TermId == termId)));
从这里你可以看到我的架构如下:
SubForm 有许多 Class,每个 Class 又有许多 Term。
我想要的是:
在特定的 Term 中,所有 SubForms 及其 Classes。
现在发生的事情是,我得到了所有具有特定 Term 中任何 Class 的 SubForms。这意味着 SubForm 返回了所有子类,而不仅仅是与 Term 相关的那些。
例如:我有两个术语,一个 SubForm 每个术语有 2 个 classes。这个查询会带回 4 个 classes 而不是那个特定术语中的 2 个。
是否有任何 Include('Expression') 可以用来表示我只想基于条件包含所有 classes?或者我的查询有问题吗?
Any
应该是Where
,对吧?否则你的查询只会返回一个布尔值,表示“是否有任何子表单具有给定 termId 的术语类别?” - Slauma