Entity Framework Code First com MySql

22/07/2013

0

Alguém já utilizou, o que é precio? Comecei a fazer uns testes mas não estão dando certo.
Thiago Porto

Thiago Porto

Responder

Post mais votado

27/02/2015

Embora a duvida seja antigo é sempre bom atualizar a resposta. Esse link explica passo a passo como fazer:

https://devmais.wordpress.com/2015/02/26/configurando-mysql-entityframework-code-first-passo-a-passo/

Prodados Ltda

Prodados Ltda
Responder

Mais Posts

23/07/2013

Gabriel Simas

Fala Thiago, tudo beleza?

Bem, para que você possa conectar o MySQL ao seu Modelo de Dados você antes de mais nada precisar colocar a sua string de conexão e dar um nome a ela, seja no App.config ou no web.config, como por exemplo:

<add name="ConexaoMySQL" connectionString="Server=111.222.333.444; Database=bancodados; Uid=user; Pwd=senha;" providerName="MySql.Data.MySqlClient" />


Como você criou um nome para esta conexão com o MySQL, na sua Classe que extende a DbContext, você deve utilizar o nome desta conexão no construtor,como um exemplo:

public class ConexaoBanco : System.Data.Entity.DbContext
{
    public DbContext()
        : base("ConexaoMySQL")
    {

    }

    public DbSet<Tabela> Tabela { get; set; }
}


E pronto, este código já fará com que você se conecte com a Base de Dados com sucesso. Se quiser, pode fazer um teste com uma Console Application mesmo instanciando a Classe ConexaoBanco, se ela trouxer algum resultado que não seja uma exceção, a Connection String estará correta.

Quaisquer dúvidas, só nos chamar aqui que de pronto lhe ajudaremos.

Forte Abraço.


Responder

23/07/2013

Thiago Porto

public class ConexaoBanco : System.Data.Entity.DbContext {     public ConexaoBanco()         : base("ConexaoMySQL")     {       }       public DbSet<Tabela> Tabela { get; set; } }


Deu certo para criar o banco, mas quando chego no método add ele dá um erro informando que o campo não pode ser not null sendo que passo valor.
PS: Alterei o nome do construtor que estava errado.
Obrigado!
Responder

23/07/2013

Gabriel Simas

Thiago,

O trecho de código que eu coloquei foi apenas para exemplificar o que você deveria fazer para obter êxito.

Bem, você conseguiu fazer a conexão com o Banco e isso já é uma vitória não era apenas isso o que você estava precisando? ou você precisa também saber como que se usa o Entity Framework Code First?

É um grande prazer ajudar.

Forte Abraço.

Responder

27/02/2015

Thiago Santana

Esse assunto sobre Entity Framework Code First é muito interessante!
Já participei de alguns Hangouts, porém nunca fiz pratiquei nada.
Responder

27/02/2015

Gabriel Simas

Esse assunto sobre Entity Framework Code First é muito interessante!
Já participei de alguns Hangouts, porém nunca fiz pratiquei nada.


Por que não Thiago?

Forte Abraço
Responder

27/02/2015

Thiago Santana

Gabriel apenas falta de estímulo/tempo!
Mas agora estou bastante interessado. Poderia disponibilizar links ou material?
Responder

27/02/2015

Gabriel Simas

Gabriel apenas falta de estímulo/tempo!
Mas agora estou bastante interessado. Poderia disponibilizar links ou material?


Claro, a própria microsoft têm artefatos muito bons e interessantes sobre isso.
Futuramente vou escrever alguns artigos para a .NET Magazine neste sentido sobre o EF 6, por enquanto, seguem alguns locais interessantes:

Vale a pena você estudar o Modo Code First com classes decoradas ou Code First com Fluent API (Quebra o maior galho em Domínios que você precise desacoplar, pq você mapeia fora dele).

https://msdn.microsoft.com/pt-br/magazine/dn532202.aspx => EF6 Ninja
http://www.entityframeworktutorial.net/ => Esse é excelente
http://www.dotnetcurry.com/showarticle.aspx?ID=899

E por aí vai.

Forte Abraço.
Responder

27/02/2015

Thiago Santana

Valeu obrigado!
Vou dar uma estudada, pois atualmente ainda não trabalho com MVC, apenas com Web Forms e Windows Forms.
Responder

27/02/2015

Gabriel Simas

Valeu obrigado!
Vou dar uma estudada, pois atualmente ainda não trabalho com MVC, apenas com Web Forms e Windows Forms.


Sei bem o que é isso. Quando se está em ambiente corporativo, o WebForm ajuda bastante mesmo... Apesar de você não precisar usar o EF apenas com MVC, você pode utilizá-lo com WebForms tb caso você já programe utilizando camadas e afins.

Aqui onde trabalho tb é WebForms, mas utilizamos NHibernate, Entity Framework e para os WebServices utilizamos ADO.NET e por aí vai.

Se precisar de ajuda para refactoring de seus sistemas, só chamar... 4 braços andam mais rápidos que 2, hehe

Forte Abraço
Responder

27/01/2016

Thiago Souto

Boa tarde Gabrielsimas

Como faço para criar a conexão fora do app.config ou web.config, usando o dbcontext. Pois caso o cliente mude o banco de dados de local para outro servidor então segue a baixo minhas perguntas.
1° - eu posso criar uma classe de conexão e ao invez de usar o app.config ou web.config e usar essa classe?
2° - eu perco desempenho do banco de dados ao trocar esse tipo de conexão?
e como ficaria essa conexão do dbcontext e essa classe de conexão.
Responder

27/01/2016

Jothaz

Boa tarde Gabrielsimas

Como faço para criar a conexão fora do app.config ou web.config, usando o dbcontext. Pois caso o cliente mude o banco de dados de local para outro servidor então segue a baixo minhas perguntas.
1° - eu posso criar uma classe de conexão e ao invez de usar o app.config ou web.config e usar essa classe?
2° - eu perco desempenho do banco de dados ao trocar esse tipo de conexão?
e como ficaria essa conexão do dbcontext e essa classe de conexão.


Se mudar de local porque não alterar nos arquivos .config?
Responder

28/01/2016

Gabriel Simas

Boa tarde Gabrielsimas

Como faço para criar a conexão fora do app.config ou web.config, usando o dbcontext. Pois caso o cliente mude o banco de dados de local para outro servidor então segue a baixo minhas perguntas.
1° - eu posso criar uma classe de conexão e ao invez de usar o app.config ou web.config e usar essa classe?
R.: Sim você pode criar uma classe de conexão, porém, você vai ficar engessado justamente quando você precisar trocar de servidor, vai ficar tendo que alterar o código fonte, ao invés de só alterar um arquivo.

2° - eu perco desempenho do banco de dados ao trocar esse tipo de conexão?
R.: Não perde em desempenho da aplicação, mas perde desempenho na entrega do que lhe fora solicitado.

e como ficaria essa conexão do dbcontext e essa classe de conexão.

A dica de como criar isso, você vê aqui:

[url:descricao=https://msdn.microsoft.com/en-us/library/bb738533(v=vs.110).aspx]https://msdn.microsoft.com/en-us/library/bb738533(v=vs.110).aspx[/url]
Responder

28/01/2016

Jothaz

É possível de ser feito, mas não é uma boa prática. Ao publicar seu site em uma base diferente (como no Azure, por exemplo), o sistema já não funcionaria adequadamente. O ideal é você configurar seu contexto da seguinte forma:

public Context() : base("name=sua-string-conexao")


configuration>
    <connectionStrings>
        <add name="NomeDaSuaConexao" connectionString=""Data Source=(seu-server); Initial Catalog=seu-bd; Integrated Security=True;" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>


Configurando via classe se mudar algum dados você terá de alterar a aplicação e gerar um outro deploy e atualizar seu ambiente de produção.

Ao usar os .config você altera somente neles e já vai funcionar, sem a necessidade de nenhuma inferência na aplicação. Usar-se .config justamente para poder usurfruir desta dinamicidade e independência.

Por isto questionei o porque de não utilizar os .config!

Mas quem decide é o responsável pelo desenvolvimento que comece melhor do que ninguém o cenário.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar