Динамическое отображение NHibernate

Я ищу способ динамически отображать классы таблиц базы данных в моем приложении с помощью nhibernate (или, если работает какой-то другой ORM, дайте мне знать). Я новичок в nhibernate, хотя раньше я использовал фреймворки сущностей.

Большая часть моего приложения будет использовать статические структуры и беглый спящий режим для их сопоставления.

Однако существует несколько таблиц базы данных, которые необходимо будет создать и сопоставить с объектами на каждом сайте установки. Все они будут иметь базовую структуру (идентификатор, имя и т. Д.), Однако у них будут дополнительные поля в зависимости от типа данных, которые они собирают. Из некоторого чтения я обнаружил, что могу использовать сопоставление «динамический компонент» в xml для добавления полей с помощью свойства IDictionary Attributes. Это первый шаг, и он кажется относительно простым. Ссылка (http://ayende.com/blog/3942/nhibernate-mapping-dynamic-component)

Второй шаг - вот где я борюсь. Мне нужно будет определить таблицы и сопоставить их в зависимости от потребностей клиента. Как указано выше, каждая из таблиц будет иметь набор статических свойств и несколько динамических. Им также потребуется ссылка на статический класс «Местоположение», как показано ниже

Местоположение (STATIC) (идентификатор, координаты)
----- DynamicTable1 (DYNAMIC) (id, Name, location_id, DynamicAttribute1, DynamicAttribute2 ........)
----- DynamicTable2 (DYNAMIC) (id, Name, location_id, DynamicAttributeA, DynamicAttributeB ....)

Нам нужно будет иметь возможность создавать / отображать столько динамических таблиц, сколько нужно клиенту. DynamicTable1, DynamicTable2 и т.д., скорее всего, будут в чем-то отличаться для большинства клиентских сайтов. Есть ли способ в nhibernate для этого? Создание / управление таблицами в базе данных будет осуществляться где-то еще, мне просто нужен способ, чтобы это отобразить в моем ORM.

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

6
задан Jason Belci 24 August 2011 в 07:23
поделиться