У нас есть приложение, которое позволяет пользователю добавлять пользовательские столбцы в наши таблицы (возможно, не самая лучшая идея, но так оно и есть).
Мы сейчас (пере) проектируем наш уровень доступа к данным (у нас его раньше не было), и теперь мы собираемся использовать параметризованные запросы в наших преобразователях данных при запросах к базе данных SQL (ранее мы объединяли строки SQL). и избежал всех входных данных).
Теперь мы пытаемся определить наилучший способ обработки пользовательских столбцов, чтобы запрашивать, создавать и обновлять эти записи. Настраиваемые атрибуты будут храниться в словаре наших «бизнес-объектов», поэтому я подумал сделать это так:
Запрос данных
- Используйте SELECT *, чтобы получить все столбцы, заполнить наши свойства и сохранить остальные (пользовательские данные) в словаре бизнес-объекта.
Создание / обновление
- Перебрать все столбцы в таблице (что-то вроде: SELECT COLUMN_NAME FROM information_schema.columns WHERE TABLE_NAME = 'TableName'
- Создать строку SQL (с параметризованными именами переменных), проверив, какие столбцы существуют как в словаре, так и в таблице, а затем добавив значения из словаря в качестве переменных в команду SQLCommand
Или есть ли лучшие подходы при использовании параметризованных запросов?