Вопрос

Потерпи меня, я начинаю:Как я могу выбрать несколько элементов, используя a WHERE...IN...тип предложения, как в

select * from orders where orderid in (1, 4, 5)

в LinqToSql?Я бы предпочел не использовать лямбда-выражения, так как они меня пугают.Заранее спасибо!

Это было полезно?

Решение

LINQ имеет " Содержит " который похож на "IN" но выражено наоборот - элемент не находится в " набор, набор "содержит" элемент.

int[] validIds = { 1, 4, 5 };
var query = from order in db.Orders
            where validIds.Contains(order.Id)
            select order

Это проще выразить (IMO) с помощью лямбды:

int[] validIds = { 1, 4, 5 };
var query = db.Orders.Where(order => validIds.Contains(order.Id));

Я понимаю, что лямбды являются "новыми" и, следовательно, в какой-то степени страшный, но действительно стоит схватить их обеими руками. Они прекрасны.

Другие советы

int[] arry = new int[] {1,4,5};

var q = from r in orders
        where Array.IndexOf(array, orderid) != -1
        select r;

или

List<int> lst = new List<int>(new int[] {1,4,5});
var q = from r in orders
        where lst.Contains(orderid);
        select r;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top