Можно ли сгенерировать схему базы данных из 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: Dialect не поддерживает генерацию идентификационного ключа
Я подозреваю, что это будет генерировать схему только на основе созданных вами сопоставлений?Я не создал никаких отображений.Идея в том, что это будет работать против любой базы данных, к которой я подключился, для создания схемы для нее.
Вопрос: Верю ли я, что этот метод будет генерировать схему только на основе моих отображений?Если нет, правильно ли я это использую?
Надеюсь, это достаточно ясно, прокомментируйте, если мне нужно предоставить больше информации.
Заранее спасибо.
Для ясности: у меня есть база данных, и я хочу получить метаданные, представляющие базу данных, схему.