2013-08-14 7 views
13
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') 

, ben isim bir dizinin değerler olduğu tüm sonuçlar elde etmek için SQL Linq to kullanmak istiyorum.Linq to SQL: Yukarıdaki (varsayımsal) SQL şema ve verilere dayanarak NEREDE IN deyimi

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

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

sonuç John ve Sarah içermelidir. Bu bilgilerle eklenmesi gereken girdileri ekleyebilirim, bu durumda Cassandra.

Tüm adları yüklemek istemiyorum çünkü liste çok uzun sürebilir. Sen names.Contains() kullanabilirsiniz

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

cevap

20

:

+0

Teşekkür! Böyle açık bir cevap. Bunu hiç düşünmediğime inanamıyorum. – cbillowes

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

Sen Contains uzatma yöntemi kullanabilirsiniz

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

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