Performing a WHERE IN with Entity Framework or on a List
WHERE IN
is a very useful and commonly used feature of SQL, it looks like this -
SELECT * FROM ORDER WHERE OrderId IN (10248, 10249, 10250, 10251)
The will return up to four rows of data, showing just the orders that have an OrderId in the list you passed to the select statement.
You can do the same with Entity Framework by using the Contains
predicate with a Where
.
First you need to put the OrderIds you are looking for in some sort of enumerable.
IEnumerable ordersToFind = new List { 10248, 10249, 10250, 10251 };
Then you use Where
on the Orders DbSet
and check the orderIds
against the list you just created.
var orders = _northwindContext.Orders.Where(o => ordersToFind.Contains(o.OrderId));
That’s all there is too it. You don’t have to use this on just Entity Framework, it also works on simple lists, arrays, enumerables, etc.