Использование nHibernate для получения схемы базы данных

Можно ли сгенерировать схему базы данных из nHibernate, где я предоставил nHibernate с конфигурацией для базы данных, но я не написал никаких сопоставлений.

Я хочу получить базу данных метаданных / схемы программно.

Я использую базу данных Oracle. Я попробовал два подхода:

Подход один:

    public DatabaseMetadata GetMetadata(DbConnection connectionIn)
    {
        return new DatabaseMetadata(connectionIn, _dialect);
    }

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

Вопрос: Почему бы не вернуть данные таблицы? Подключен правильно, но ничего не находит!

Подход второй:

 public void DatabaseSchema()
 {
     var schema = new SchemaExport(nHibernateConfiguration);
     schema.SetOutputFile("schema.dll");
      schema.Create(true, true);
 }

nHibernateConfiguration - это экземпляр (свойство класса) объекта конфигурации nHibernate, заполненный содержимым класса nHibernate.xml.config.

Проблема: Это просто не работает. Сбои со следующим исключением:

NHibernate.MappingException: Диалект не поддерживает генерацию идентификационного ключа

Я подозреваю, что это будет генерировать схему только на основе созданных вами сопоставлений? Я не создал никаких отображений. Идея в том, что это будет работать против любой базы данных, к которой я подключился, для создания схемы для нее.

Вопрос: Верю ли я, что этот метод будет генерировать схему только на основе моих отображений? Если нет, правильно ли я это использую?

Надеюсь, это достаточно ясно, прокомментируйте, если мне нужно предоставить больше информации.

Заранее спасибо.

Чтобы было ясно: у меня есть база данных, и я хочу получить метаданные, представляющие базу данных, схему.

Ответы на вопрос(1)

Ваш ответ на вопрос