It is not a rare situation when it is necessary to make a selection of elements from the database based on the list of IDs. You can use the ‘Where‘ method in LINQ and ‘Contains‘ in List to filter your data based on the list of Id’s. Here’s an example:
using (var yarkulDbContext = new YarkulDbContext(PersonManager.dbOptions) { }) { var myPersonIdsList = new List<int>() { 2, 3, 4 }; var persons = yarkulDbContext. Persons. Where(p => myPersonIdsList.Contains(p.Id)) .AsNoTracking() .ToList(); }
The key line is: .Where(p => myPersonIdsList.Contains(p.Id))
, check the next screenshot for more details:
You can see that behind-the-scenes LINQ expression transformed to the ‘WHERE [p].[Id] IN (2,3,4)‘ statement. Remember that it works fine for small data sets.
My artifacts for this article are:
- Visual Studio 2022
- .Net 6.0
- MS SQL 2019 Express
You may also be interested to read my articles related to Entity Framework: