Вы можете сделать это легко с LINQ , если вы используете .NET 3.5 или выше.
Прежде чем сделать это, я бы удостоверился, что вы делаете все возможное, что касается выбора наборов данных на стороне базы данных.
Спросите себя, действительно ли вам нужно делать это в вашем приложении или оно может работать на стороне базы данных (как представление, хранимая процедура и т. Д.).
Сохраняя свою логику запросов на стороне базы данных, вы сохраняете ее там, где она принадлежит и будет выполняться наиболее эффективно.
Кроме того, позволяя базе данных выполнять все ваши запросы, вы позволяете вашим приложениям быть более масштабируемыми, потому что базу данных почти всегда легче и эффективнее распараллеливать и масштабировать, чем ваше приложение.