Início > C#, Dicas / Tips > Configurando NHIBERNATE de 3 modos diferentes

Configurando NHIBERNATE de 3 modos diferentes

Colocarei 3 porções de código mostrando como configurar uma Session Factory de NHIbernate utilizando: Fluent NHibernate, Arquivo XML, e via código.

Não se esqueça de adicionar as referências corretamente e substituir os valores-chave por seus próprios valores.

Utilizando Fluent NHibernate:

            var stringConexao = "Server=localhost;Port=5432;User Id=postgres;Password=sua_senha;Database=seu_banco_de_dados";

            SessionFactory = Fluently.Configure()
                   .ExposeConfiguration(c => c.Properties.Add("hbm2ddl.keywords", "none"))
                   .Database(PostgreSQLConfiguration.PostgreSQL82
                   .ShowSql() // EXIBE AS SQLs no CONSOLE. Desativar quando for efetuar RELEASE.
                   .ConnectionString(stringConexao))
                   .Mappings(m => m.HbmMappings.AddFromAssembly(typeof(Solucao.Dominio.Mapeamento).Assembly))
                   .BuildSessionFactory();
            Console.Write("SESSION-FACTORY configurado.");

            Sessao = SessionFactory.OpenSession();

* OBS: typeof(Solucao.Dominio.Mapeamento) deve ser substituído pelo Assembly na sua solution onde estão as classes/xml de mapeamento.

Configurando NHibernate usando hibernate.cfg.xml

1º Adicionar ao seu projeto um arquivo com nome: hibernate.cfg.xml seguindo a configuração que vem na pasta “Configuration_Templates” no arquivo com os binários do NHibernate que você baixa no site oficial.
Exemplo:

<?xml version="1.0" encoding="utf-8"?>
<!-- 
This template was written to work with NHibernate.Test.
Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it 
for your own use before compile tests in VisualStudio.
-->
<hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
	<session-factory name="NHibernate.Test">
		<property name="connection.driver_class">NHibernate.Driver.NpgsqlDriver</property>
		<property name="connection.connection_string">
			Server=localhost;initial catalog=nhibernate;User ID=nhibernate;Password=nhibernate;
		</property>
		<property name="dialect">NHibernate.Dialect.PostgreSQLDialect</property>
	</session-factory>
</hibernate-configuration>

2º Adicionar o seguinte código:

            Configuration config = new Configuration().Configure("hibernate.cfg.xml");

            config.AddAssembly("Solucao.Dominio"); // assembly onde estão localizados os mapeamentos

            SessionFactory = config.BuildSessionFactory();
            Sessao = SessionFactory.OpenSession();

Configurando usando código nativo NHIbernate:

Utilize o seguinte código:

            var mapper = new ModelMapper();
            // Substitua o endereço abaixo pela referência de uma classe qualquer do seu domínio
            mapper.AddMappings(Assembly.GetAssembly(typeof (Solucao.Dominio.ClasseQualquer)).GetTypes());
            // É POSSÍVEL APLICAR DIVERSAS CONVENÇÕES NO MAPPER. NÃO FALAREI NESSE POST.
            HbmMapping meuMapeamentoDominio = mapper.CompileMappingForAllExplicitlyAddedEntities();

            Configuracao = new Configuration();

            Configuracao.DataBaseIntegration(
                c =>
                    {
                        c.Dialect<PostgreSQL82Dialect>();
                        c.ConnectionString =
                            @"Server=localhost;Port=5432;User Id=postgres;Password=sua_senha;Database=seu_banco_de_dados";
                        //c.LogSqlInConsole = true; // GERA LOG DOS SQL EXECUTADOS NO CONSOLE
                        //c.LogFormattedSql = true; // DESCOMENTAR CASO QUEIRA VISUALIZAR O LOG DE SQL FORMATADO NO CONSOLE
                        //c.SchemaAction = SchemaAutoAction.Create; // CRIA O SCHEMA DO BANCO DE DADOS SEMPRE QUE A CONFIGURATION FOR UTILIZADA
                    }
                );
            Configuracao.AddMapping(meuMapeamentoDominio); // adiciona mapeamentos no arquivo de configuração
            var SessionFactory = Configuracao.BuildSessionFactory();  // Cria uma Session Factory a partir desse arquivo de configuração. para abrir uma sessão: SessionFactory.OpenSession();
Anúncios
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixar uma Anotação

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

dotnettips.wordpress.com/

Helping Programmers Since 1994

Viagem e Voo

Dicas para viagens, férias e voos nacionais e internacionais

Ivan Guimarães Meirelles

Analista Desenvolvedor

Void Podcast

Vazio e sem retorno de valor

Elemar DEV

Negócios, tecnologia e desenvolvimento

2,000 Things You Should Know About WPF

Everything a WPF Developer Needs to Know, in Bite-Sized Chunks

blog

so long

Fernando Franzini Blog

Engenharia de Software e Arquitetura Ágil

Gabriel RB.net

Blog técnico, com dicas, códigos, novidades e problemas do dia-a-dia programando.

Alexandre Valente's Blog

Experiências em tecnologia e assuntos diversos

%d blogueiros gostam disto: