LINQ to Dataset - 相当于sql(其中...... in ...)

时间:2011-01-25 12:33:44

标签: linq

我有一个客户ID列表,custList(字符串)。

我想对数据集使用LINQ查询,以获取customer表中的所有客户,其中customerID是“IN”我的custList(字符串)。

这在LINQ中是否可行?我在网上搜索过但找不到答案。我是LINQ的新手..

由于

3 个答案:

答案 0 :(得分:2)

在LINQ中,您使用Contains()方法执行这类查询。

我不知道LINQ to DataSets,但在LINQ to SQL中,您可以执行以下操作:

var statuses = new int[] {1, 2, 3};

var query = from p in dataContext.Products
            where statuses.Contains(p.Id)
            select p;

这应该生成类似于:

的SQL
select * from Product p
where p.Id in (1, 2, 3)

(注意在生成的SQL的LINQ代码中它是如何反复出现的 - 这就是为什么如果你很了解SQL它不是很直观,但是它可以非常优雅地使用现有的.NET语言功能)

这通常也适用于string以及L2S知道的一些其他基本类型的集合,因为它们位于框架中。

答案 1 :(得分:1)

var custList = new HashSet<string>() { "a", "b", "c"...};

from record in table.ToEnumerable()
where custList.Contains(record.Field<string>("customerID"))

答案 2 :(得分:0)

var custList = new HashSet<int> { 10, 15, 17 };
CustomerSet.Where(c => custList.Contains(c.CustomerID));