Usando o nHibernate para recuperar o esquema do banco de dados

É possível gerar um esquema de um banco de dados a partir do nHibernate, onde forneci ao nHibernate a configuração do banco de dados, mas não escrevi nenhum mapeamento.

Desejo obter o MetaData / Esquema do Banco de Dados programaticamente.

Estou usando um banco de dados Oracle. Eu tentei duas abordagens:

Abordagem um:

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

Problema: No entanto, parece ser o que eu preciso, embora ele se conecte corretamente, não pegou nenhuma das minhas tabelas. Tudo o que forneci foi o objeto de configuração nHibernate, que foi preenchido com o conteúdo do meu arquivo nHibernate.xml.config (cadeia de conexão, driver cliente, etc.).

Pergunta, questão: Por que não retornaria os dados da tabela? Ele está conectado corretamente, mas não encontra nada!

Abordagem dois:

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

nHibernateConfiguration é uma instância (propriedade na classe) do objeto nHibernate Configuration, preenchida com conteúdo da classe nHibernate.xml.config.

Problema: Isso simplesmente não funciona. Falha com a seguinte exceção:

NHibernate.MappingException: Dialect não suporta geração de chave de identidade

Eu suspeito que isso só irá gerar um esquema com base nos mapeamentos que você criou? Eu não criei nenhum mapeamento. A idéia é que isso funcione em qualquer banco de dados que eu tenha conectado para gerar um esquema para ele.

Pergunta, questão: É minha convicção que este método irá gerar apenas um esquema baseado em meus mapeamentos? Caso contrário, estou usando corretamente?

Espero que isso seja claro o suficiente, comente se eu precisar fornecer mais informações.

Desde já, obrigado.

Para ser claro: eu tenho um banco de dados e quero obter metadados representando o banco de dados, um esquema.

questionAnswers(3)

yourAnswerToTheQuestion