В какой-то строке кода кто-то когда-нибудь решит, уместно ли вводить SQL. Но вместо этого вы будете использовать LINQ.
Так что не имеет значения, должен ли LINQ быть встроен, а SQL - нет. Вопрос в том, где вы хотите, чтобы ваше представление доступа к хранилищу данных было. Если вы пишете LINQ в какой-то строке кода, и вам не нравится, что эта область имеет доступ к хранимым данным, тогда это неправильное место.
LINQ - это просто абстракция для манипулирования данными. Это ярлык для фильтрации наборов. Так же, как базы данных понимают SQL, в среде .NET есть язык для общения с данными.
В чем разница между LINQ и операциями if в цикле, с данными, полученными из файла или с сетевого сокета? Нет, это просто синтаксис. Если вы SELECT * FROM table
фильтруете каждую строку по функции, в чем разница с where c.SomeProperty < x
с LINQ? Просто синтаксис.
Конечно, LINQ знает и делает больше, чем просто возвращает строки из базы данных. Он позволяет создавать экземпляры объектов из коллекции, но также = new ClassName(column1, colum2)
из результатов операторов SQL.
Короче говоря, если где-то запись встроенного SQL в вашем коде - нет-нет, значит, он должен писать LINQ.
Но это зависит от проекта. Базы данных в основном понимают SQL, поэтому, по крайней мере, где-то в вашем коде, библиотеке или среде есть встроенные SQL.