Лучший способ построения динамических запросов SQL в C # /. NET3.5? - PullRequest
8 голосов
/ 15 сентября 2008

Проект, над которым я сейчас работаю, включает в себя рефакторинг C # Com Object, который служит слоем доступа к базам данных для некоторых баз данных Sql 2005.

Автор существующего кода создал все запросы sql вручную, используя строку и множество операторов if для построения довольно сложного оператора sql (~ 10 объединений,> 10 подвыборов, ~ 15-25, где условия и GroupBy's) , Базовая таблица всегда одна и та же, но структура соединений, условий и группировок зависит от набора параметров, которые передаются в мой класс / метод.

Построение SQL-запроса, подобного этому, работает, но, очевидно, это не очень элегантное решение (и довольно сложное для чтения / понимания и обслуживания) ... Я мог бы просто написать простой "построитель запросов", но я сам Я уверен, что я не первый с такой проблемой, поэтому мои вопросы:

  • Как вы строите запросы к базе данных?
  • Предлагает ли C # простой способ динамически создавать запросы?

Ответы [ 12 ]

0 голосов
/ 15 сентября 2008

Если вы используете C # и .NET 3.5 с добавлением MS SQL Server, то LINQ to SQL определенно подходит. Если вы используете что-либо, кроме этой комбинации, я бы порекомендовал маршрут ORM, например nHibernate или Subsonic .

0 голосов
/ 15 сентября 2008

Вы можете рассмотреть LINQ или O / R Mapper, как этот: http://www.llblgen.com/

...