Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq to SQL:WHERE IN语句_C#_Sql_Linq - Fatal编程技术网

C# Linq to SQL:WHERE IN语句

C# Linq to SQL:WHERE IN语句,c#,sql,linq,C#,Sql,Linq,基于上述(假设的)SQL模式和数据,我想使用Linq to SQL来获得数组值中名称为的所有结果 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 ('P

基于上述(假设的)SQL模式和数据,我想使用Linq to SQL来获得数组值中名称为的所有结果

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')
结果应该包括
John
Sarah
。有了这些信息,我就可以添加需要添加的条目,在本例中是
Cassandra


我不想加载所有名称,因为列表可能会变得异常长。

您可以使用
Contains
扩展方法:

string[] names = {"John", "Cassandra", "Sarah"};

var results = (from n in db.Names
               where n.Name **in names**
               select n).ToList();
var results = (from n in db.Names
               where names.Any(x=>x == n.Name)
               select n).ToList();

您可以使用
名称.Contains()


谢谢这是一个显而易见的答案。真不敢相信我从没想过。
var results = (from n in db.Names
               where names.Contains(n.Name)
               select n).ToList();
string[] names = {"John", "Cassandra", "Sarah"};

var results = (from n in db.Names
               where names.Contains(n.Name)
               select n).ToList();