【发布时间】:2012-05-08 23:24:44
【问题描述】:
脑筋急转弯,需要一个简单/快速的答案 - 我可能从错误的角度看待这个问题,但本周我有很多事情要做。 :-(
使用 linq-to-sql,我有一个表,其中的项目通过映射表映射到许多类别。
我现在需要提取映射到多个类别的所有项目,但只提取映射到所需的所有类别的项目。这是对原始摘要的更改,该摘要是提取映射到任何类别 ID 的数据。
例子:
人 A 被映射到类别 1、类别 2 和类别 3 人 B 映射到类别 1 和类别 3
因此,如果我选择类别 1 和 2,则返回两个人员项目,但是如果我选择了 1、2 和 3,则仅应返回人员 A。
这是返回任何项目的原始(简化)代码:
IList<Person> results = (from a in data from b in a.CategoryMappings
where catIDs.AsEnumerable().Contains(b.CategoryID)
select a).Distinct().ToList();
catIDs 是一个IList<int>,取自发送到查询的数据,它可以是任意长度。并且数据要么是 IQueryable。
知道如何构建这个查询吗?
T
【问题讨论】:
标签: c# asp.net linq-to-sql