Linq to SQL: WHERE IN statement
本文关键字:IN statement WHERE to SQL Linq | 更新日期: 2023-09-27 18:27:36
CREATE TABLE [MyNames]
(
[ID] INT IDENTITY PRIMARY KEY,
[Name] NVARCHAR(255) NULL
)
INSERT INTO [MyNames] VALUES ('John')
INSERT INTO [MyNames] VALUES ('Jane')
INSERT INTO [MyNames] VALUES ('Peter')
INSERT INTO [MyNames] VALUES ('Montgomery')
INSERT INTO [MyNames] VALUES ('Sarah')
基于上述(假设的(SQL 架构和数据,我想使用 Linq to SQL 来获取名称位于数组值中的所有结果。
string[] names = {"John", "Cassandra", "Sarah"};
var results = (from n in db.Names
where n.Name **in names**
select n).ToList();
结果应包括John
和Sarah
。有了这些信息,我就可以添加需要添加的条目,在本例中为 Cassandra
.
我不想加载所有名称,因为列表可能会变得特别长。
您可以使用
names.Contains()
:
string[] names = {"John", "Cassandra", "Sarah"};
var results = (from n in db.Names
where names.Contains(n.Name)
select n).ToList();
您可以使用Contains
扩展方法:
var results = (from n in db.Names
where names.Contains(n.Name)
select n).ToList();
var results = (from n in db.Names
where names.Any(x=>x == n.Name)
select n).ToList();