none
Fluenty NHibernate conexão com Azure SQL RRS feed

  • Pergunta

  • Estou seguindo um tutorial (https://www.youtube.com/watch?v=sWBPnJa5HXk) e ele está falando de como criar uma conexão com o banco de dados Postgres. Só que eu estou usando o Azure como hospedagem e base de dados, já tenho um banco.

    Li rapidamente sobre MRCollective (não sei se esse é o nome), localizado aqui https://github.com/MRCollective/NHibernate.SqlAzure, parece que ele é uma dll que ajuda nesse processo. Mas não entendi muito, não tenho experiência com banco de dados. Alguém pode me ajudar a configurar?


    ---------- Vítor Norton http://www.vtnorton.com "Be Kind one to another" (Seja Gentil uns com os outros)

    terça-feira, 24 de junho de 2014 11:56

Respostas

  • No github está bem descrito:

    1. Instale ou atualize a versão do pacote FluentNhibernate via Nuget
    2. Instalar o pacote Install-Package NHibernate.SqlAzure via Nuget
    3. Configurar o Database para usar o driver SqlAzureDriverClient

    Fluently.Configure().Database(MsSqlConfiguration.MsSql2008.ConnectionString(connectionString).Driver<SqlAzureClientDriver>());

    Obs: ao invés de "connectionString" você deve setar a connection string do seu Sql Database (pode ser obtida via painel de administração).

    <connectionStrings>
      <add name="SQLAzureConnection" connectionString="Data Source=<ProvideServerName>.database.windows.net;Initial Catalog=TestDb;User ID=<ProvideUserName>;Password=<ProvidePassword>;Encrypt=true;Trusted_Connection=false;"
        providerName="System.Data.SqlClient" />
    </connectionStrings>


    Thiago Custodio | Software Engineer
    Blog
    Twitter
    Faça parte da Comunidade Windows Azure Brasil no Facebook


    quarta-feira, 25 de junho de 2014 20:47

Todas as Respostas

  • No github está bem descrito:

    1. Instale ou atualize a versão do pacote FluentNhibernate via Nuget
    2. Instalar o pacote Install-Package NHibernate.SqlAzure via Nuget
    3. Configurar o Database para usar o driver SqlAzureDriverClient

    Fluently.Configure().Database(MsSqlConfiguration.MsSql2008.ConnectionString(connectionString).Driver<SqlAzureClientDriver>());

    Obs: ao invés de "connectionString" você deve setar a connection string do seu Sql Database (pode ser obtida via painel de administração).

    <connectionStrings>
      <add name="SQLAzureConnection" connectionString="Data Source=<ProvideServerName>.database.windows.net;Initial Catalog=TestDb;User ID=<ProvideUserName>;Password=<ProvidePassword>;Encrypt=true;Trusted_Connection=false;"
        providerName="System.Data.SqlClient" />
    </connectionStrings>


    Thiago Custodio | Software Engineer
    Blog
    Twitter
    Faça parte da Comunidade Windows Azure Brasil no Facebook


    quarta-feira, 25 de junho de 2014 20:47
  • Obrigado pela resposta...

    Porém agora estou enfrentando um outro problema, ao cadastrar algo no meu sistema dá a mensagem: System.Exception: Erro ao inserir entidade: could not insert: [BuildClasses.Entities.Atualizacao][SQL: INSERT INTO dbo.Atualizacoes (Changelog, DataDaAtualizacao, Descricao, IDSolucao, NomeDaVersao, VersaoPrimeiroNumero, VersaoSegundoNumero, VersaoTerceiroNumero) VALUES (?, ?, ?, ?, ?, ?, ?, ?); select SCOPE_IDENTITY()]

    Não sei se é algo na String de Conexão, acredito que não. Ou o nome da tabela na classe de mapeamento, que eu já tentei de tudo. Já fiz os testes com o nome da tabele "Atualizacoes" e "dbo.Atualizacoes", mas aparentemente não é isso.


    ---------- Vítor Norton http://www.vtnorton.com "Be Kind one to another" (Seja Gentil uns com os outros)

    sábado, 28 de junho de 2014 20:49
  • Use o Nhibernate profiler para capturar o comando que ele está tentando executar no DB. 

    http://www.hibernatingrhinos.com/products/nhprof


    Thiago Custodio | Software Engineer
    Blog
    Twitter
    Faça parte da Comunidade Windows Azure Brasil no Facebook

    segunda-feira, 30 de junho de 2014 14:43