LINQ имеет одно большое преимущество перед большинством других методов доступа к данным: он сосредоточен вокруг метафоры ' выражение запроса ', что означает, что запросы могут передаваться как объекты и могут быть изменены и изменены, все до они выполняются (повторяются). На практике это означает, что код может быть модульным и лучше изолированным. Хранилище доступа к данным вернет запрос 'orders', затем промежуточный фильтр в конвейере обработки запросов украсит этот запрос фильтром, затем он будет передан в модуль отображения, который добавляет сортировку и разбиение на страницы и т. Д. В конце концов, когда итерированное выражение полностью трансформировалось в очень специфичное SELECT ... WHERE ... ORDER BY ... LIMIT ...
(или в другую заданную нумерацию страниц, например ROW_NUMBER). Для разработчиков приложений это бесценно и реальной альтернативы просто не существует. Вот почему я считаю, что LINQ здесь, чтобы остаться и не исчезнет через 2 года. Это определенно больше, чем просто причуда. И я специально называю LINQ как метод доступа к базе данных.
Преимущество манипулирования одними объектами выражения запроса достаточно для того, чтобы сделать LINQ выигрышной ставкой. Добавьте к этому несколько типов контейнеров, которыми он может манипулировать (XML, массивы и коллекции, объекты, SQL) и унифицированный интерфейс, который он предоставляет для всех этих разнородных технологий, рассмотрите изменения параллельной обработки, происходящие в .Net 4.0, которые, я уверен, будут прозрачно интегрируется в обработку массивов и коллекций LINQ, и LINQ практически не уйдет. Конечно, сегодня он порождает нечитаемый, плохо работающий и не подлежащий отладке SQL-запрос, и это каждый кошмар, посвященный администраторам баз данных. Будет лучше.