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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar