Linq选择与ID列表匹配的记录

Mar*_*ark 10 c# linq linq-to-sql

是否可以在下面更改我的查询,以便它使用types包含类型查询中的列表.

所以不要:

var cust = db.Customers.Where(x => x.type_id==9 || x.type_id==15 || x.type_id==16).ToList();
Run Code Online (Sandbox Code Playgroud)

......我会有类似的东西:

List<int> types = new List<int> { 9, 15, 16 };
var cust = db.Customers.Where(x => types.contains(x.type_id).ToList();
Run Code Online (Sandbox Code Playgroud)

(type_id不是主键).

谢谢,

标记

Ser*_*kiy 18

是的,方法List<T>.Contains将被翻译成SQL IN运算符:

var cust = db.Customers.Where(x => types.Contains(x.type_id)).ToList();
Run Code Online (Sandbox Code Playgroud)

生成的查询将如下所示:

SELECT * FROM Customers
WHERE type_id IN (@p0, @p1, @p2)
Run Code Online (Sandbox Code Playgroud)