Предложения по динамическому доступу к SQL Server с использованием C # - PullRequest
2 голосов
/ 06 августа 2010

Я ищу хорошее решение, чтобы упростить мою жизнь в отношении записи / чтения в БД SQL Server в динамическом режиме. Я начал с Entity-framework, чтобы упростить мою жизнь, но по мере того, как программное обеспечение становится более общим и управляемым конфигурацией, я обнаруживаю, что Entity становится все менее и менее подходящей, потому что она опирается на конкретные объекты, определенные во время разработки.

Что бы я хотел сделать.

  • Создание таблиц / полей во время выполнения.
  • Выбор строк из таблиц по имени таблицы с неизвестной схемой в общий тип данных (например, Словарь)
  • Вставка строк в таблицы по имени таблицы с использованием универсальных типов данных (диктонарный, где строка сопоставляется с именем поля), при котором сопоставление типа данных между typeof (объектом) и типом поля устраняется.

Я сам начал реализовывать это, но я думаю, что кто-то уже делал это раньше.

Есть предложения? Спасибо.

Ответы [ 3 ]

1 голос
/ 06 августа 2010

У меня проблемы с пониманием того, что вы описываете, отличается от простого старого ADO.NET.DataTable s создаются динамически на основе запроса SQL, а DataRow - это просто особый случай IndexedDictionary (иногда называемый OrderedDictionary, где вы можете получить доступ к значениям через строковое имя или целочисленный индекс, например, список).Я не могу судить о том, является ли выбор ADO.NET правильным или неправильным для ваших нужд, но я пытаюсь понять, почему вы, кажется, исключили это.

1 голос
/ 09 марта 2011

Вы можете использовать Sql.Net (http://sqlom.sourceforge.net) для простой генерации динамических операторов SQL в C #.

0 голосов
/ 06 августа 2010

Среда Data Mapper iBATIS.NET (теперь MyBatis.NET ) не генерирует таблицы или поля автоматически во время выполнения, но позволяет выбирать и фиксировать данные с помощью Dictionary объектов.

Вероятно, это не будет полностью соответствовать вашим потребностям (это довольно утомительно настроить, но довольно легко поддерживать, как только это произойдет), но это может стоить посмотреть. Вот ссылка на онлайн-документацию.

Другие популярные фреймворки могут делать то же самое или похожие, например, NHibernate.

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