Учитывая предпосылку:Почему люди используют linq для sql?
- Есть компетентна SQL программисты (correlary - написание SQL-запросы не проблема)
- Есть компетентные разработчикам приложений (correlary - есть простая/сильная/гибкая архитектура обработка соединений и простые запросы из кода)
Почему люди используют linq для sql?
- Там находится наверху добавляется к каждой сделке
- Существует большая вероятность снижения производительности при умеренных комплекс расчетов (БД сделаны для наборов обработки и расчетов и были команды инженеров, работающих оптимизацию - зачем возиться с этим ?)
- Существует потеря гибкости (если вы хотите добавить еще одно ui (не .NET-приложение) или метод доступа, вам либо нужно поместить запросы обратно в db, либо создать отдельный слой доступа к данным)
- Существует потеря безопасности, не имея централизованного управления записью/обновлением/чтением на db (например, запись изменилась - если вы разрешаете приложениям использовать linq для sql для обновления, тогда вы не можете подтвердить, какое приложение изменило его или какой экземпляр приложения изменил его)
Я продолжаю видеть вопросы о linq для sql, и мне интересно, не хватает ли я что нибудь.
Если бы я мог продвигать его более одного раза, я бы ... Хорошо написано, Хороший ответ! – bytebender
+1, но я хотел бы добавить только две крошечные детали. 1) CompiledQuery отлично подходят для часто исполняемых запросов без дополнительных параметров. Если у вас есть много дополнительных параметров в запросе, они могут повредить производительность из-за потери гибкости, добавленной оптимизацией/упрощением запросов на стороне клиента L2S. 2) Даже для компетентных программистов SQL, при написании сильно типизированных запросов убирает много «взглядов на диаграмму модели печатных данных на столе» при написании сложных запросов. Intellisense заполняет детали ... – KristoferA
Хорошие очки KristoferA. Другое место CompileQuery не помогает, если запрос имеет localCollection.Contains, поскольку коллекция может отличаться по размеру. –