Как я могу создать функцию данных сегмента

У меня есть задача расширить свое веб-приложение, чтобы предоставить пользователям возможность сегментировать свои собственные данные (т.е. выбирать свои собственные поля и добавлять свои критерии, используя И/Или и т. д.), поэтому я создаю что-то похожее на инструмент построения запросов, но более легкий . На данный момент я не беспокоюсь о внешнем интерфейсе, я просто пытаюсь сосредоточиться на том, как это сделать в бэкэнде.

Пока я думаю только о том, чтобы сохранить их «Сегмент» в виде XML-документа (сериализованного в БД), который содержит все их столбцы и критерии и то, как они сопоставляются с базой данных, а затем, когда вызывается сегмент, у меня есть класс сопоставления который десериализует этот XML-документ, сопоставляет поля и создает для этого запрос SQL, а затем возвращает результаты запроса. Проблема, которую я вижу в этом, заключается в том, что если настройка базы данных изменится (вероятно), тогда у меня есть сериализованный XML-документ, который ничего не знает об этих изменениях.

Кто-нибудь сталкивался с похожей ситуацией?


person Hercules    schedule 16.01.2013    source источник


Ответы (1)


У меня была аналогичная проблема, и я разместил здесь вопрос о том, что может быть потенциальным решением вашей проблемы.

Динамический запрос linq с несколькими/неизвестными критериями

Посмотри, как ты справишься с этим.

person ChrisBint    schedule 16.01.2013
comment
Привет, спасибо за ваши предложения, это определенно дало мне еще несколько идей для достижения этого. Одна проблема заключается в том, что мне нужно иметь возможность хранить этот запрос, а не как SQL, поскольку база данных может измениться, также мне нужно иметь возможность извлекать этот сегмент, чтобы они могли изменять. - person Hercules; 17.01.2013
comment
Условия могут быть сохранены в структуре таблицы, которую я сделал сам. Все, что вам нужно сделать, это получить эти условия, преобразовать их в объект условия и использовать код, который я вставил. - person ChrisBint; 17.01.2013
comment
Ах, я понимаю, что вы говорите, я думаю, что это действительно поможет, спасибо :) - person Hercules; 17.01.2013