Проект, над которым я сейчас работаю, включает в себя рефакторинг C # Com Object, который служит слоем доступа к базам данных для некоторых баз данных Sql 2005.
Автор существующего кода создал все запросы sql вручную, используя строку и множество операторов if для построения довольно сложного оператора sql (~ 10 объединений,> 10 подвыборов, ~ 15-25, где условия и GroupBy's) , Базовая таблица всегда одна и та же, но структура соединений, условий и группировок зависит от набора параметров, которые передаются в мой класс / метод.
Построение SQL-запроса, подобного этому, работает, но, очевидно, это не очень элегантное решение (и довольно сложное для чтения / понимания и обслуживания) ... Я мог бы просто написать простой "построитель запросов", но я сам Я уверен, что я не первый с такой проблемой, поэтому мои вопросы:
- Как вы строите запросы к базе данных?
- Предлагает ли C # простой способ динамически создавать запросы?