LINQ сам по себе достаточно универсален, поскольку есть linq-to-objects, linq-to-xml, linq-to-sql, linq-to-EF и т. Д. Я думаю, вы, вероятно, будете следовать за Linq- функциональность to-Sql (в отличие, скажем, от Linq-to-EF). Делая так, чтобы все ваши наборы обеспечивались хранимой процедурой и опрашивали эти наборы в приложении с помощью Linq, я бы сказал, что вы научите себя весьма искаженному способу использования мощности Linq в целом и Linq-to-Sql в частности. Вы пропустите большую часть ноу-хау, которое поможет понять, как Linq-to-Sql генерирует SQL-запросы, отправленные на сервер, потому что вы сможете выполнять только самые простые «глупые» запросы, как вы говорите. Например. вы даже не сможете объединиться в Linq-to-Sql. И вы упустите возможность правильно понять возможности ORM в Linq-to-Sql, кеширование, которое входит в DataContexts, и поведение ActiveRecord, которое позволяет вставлять / обновлять / удалять элементы из наборов.
Хотя я не выступаю против того, чтобы делать то, что вы делаете (это очень правильный подход для совместного использования хранимых процедур и linq), я бы сказал, что это плохой подход к изучению Linq. Попытайтесь замочить ноги с помощью прямого подхода, такого как моделирование данных в Visual Studio с файловым подходом .dbml, отстаиваемого евангелистами Linq в 2008 году. Хотя я считаю, что этот подход несовершенен для развертывания крупных, жизнеспособных проектов, он хотя очень хорошо учить себя Linq и Linq-to-Sql в частности. Как только вы поймете, как все работает, вы сможете понять, как правильно использовать это с помощью хранимых процедур для разделения контроля доступа (подход, который всегда восхваляют евангелисты SQL Server) и как решать проблемы, не решаемые с помощью .dbml. подход к моделированию (в частности, проблема обновления схемы базы данных).
Некоторые могут сказать, что вам также следует следить за тем, что может предложить Entity Framework, но если вы находитесь в стадии обучения, я полностью рекомендую Linq-to-Sql. Он менее сложен, работает, нормален, хорошо поддерживается в наборе инструментов VS, и вам не нужно изучать Entity-SQL ...