2010-06-11 51 views
2

如何使用LINQ到SQL来搜索这样的:linq in或包含?

其中obj.id等于下列任何{1,2,3,4}

我想我可以使用在或可能包含?

其中obj.id在Enumerable.Range((int)myEnum.Start,(int)myEnum.End))?

回答

5

您可以使用.Contains(),像这样:

var list = new List<int> { 1, 2, 3, 5 }; 
var result = from s in DB.Something 
      where list.Contains(s.Id) 
      select s; 

这将让翻译给的参数形式:

WHERE Id IN (1, 2, 3, 5) 
+0

嗨尼克。那么如果你更换var list = new List {1,2,3,5};有一些类型的对象列表,其中包含ID和Name等成员,并且您想使用Contains中的成员ID? 它不能以list.Contains开头。在这种情况下你会如何编写这个查询? 我问,因为我有这种情况,不知道如何解决它。而不是列表的objectss和列表我有两个对象列表,并希望使用他们的ID成员。 关注 Mariusz – Mariusz 2011-08-25 21:15:41

0
var myCustomers = new short[] {1,2,3,4}; 
var foo = db.Customers.Where(c=> myCustomers.Contains(c.ID)); 
+0

@Johannes:小心不要将此示例代码粘贴到您的生产应用程序! – 2010-06-11 17:46:12