Что было бы лучшим способом организовать логику для фильтров - PullRequest
0 голосов
/ 02 марта 2012

Я хочу реорганизовать логику для фильтрации сетки моего приложения.Я хотел бы реализовать эту логику только в База данных .

Итак, у меня есть сетка, которая отображает данные из большего количества таблиц из БД.Есть некоторые textBoxes и comboBoxes, где он устанавливает данные для каждого фильтра, который ему нужен.

Теперь это ОГРОМНАЯ хранимая процедура в базе данных, которая работает следующим образом:

Изначально выбирает [ВСЕ ДАННЫЕ] из таблиц во временную таблицу, затем, в соответствии с полями, заполненными данными (из фильтра приложения), удаляет из [ВСЕ ДАННЫЕ] та информация, которая является НЕ КАК ВЫБРАННЫМ ФИЛЬТРОМ

И т. Д. Для параметра foreach, который устанавливается в фильтре.

Этот способ занимает много времени, поскольку изначально выбираетвсе данные, а затем медленно удаляет те, которые не нужны.

Я не хочу создавать запросы SQL на стороне клиента.Я хотел бы сделать это только для базы данных, или .... iimmmm, я не знаю ...

Это был бы лучший способ, очень оптимизированный, который работал бы быстро и возвращал результаты вкак можно меньше?

Я использую C # и .NET 4.0 для клиентской стороны и MSSQL DB.

Спасибо за советы.

Ответы [ 2 ]

1 голос
/ 02 марта 2012

Измените вашу хранимую процедуру, чтобы она сначала выбирала только необходимые данные во временную таблицу, а не выбирала все, а затем удаляла ненужные.

1 голос
/ 02 марта 2012

Для этого и нужны ORM.Не создавайте динамический оператор SQL на стороне клиента.Скорее, создайте фильтр запросов LINQ по фильтрам.Вы получите преимущества от полной динамичности без риска внедрения SQL.

Вы можете посмотреть this в качестве примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...