Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 3
            [id] => 512194
            [titulo] => Entity Framework Code First com MySql
            [dataCadastro] => DateTime Object
                (
                    [date] => 2015-02-27 11:10:51
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 338882
            [status] => A
            [isExample] => 
            [NomeUsuario] => Prodados Informática Ltda
            [Apelido] => 
            [Foto] => 338882_20131114124538.jpg
            [Conteudo] => Embora a duvida seja antigo é sempre bom atualizar a resposta. Esse link explica passo a passo como fazer:

[url:descricao=https://devmais.wordpress.com/2015/02/26/configurando-mysql-entityframework-code-first-passo-a-passo/]https://devmais.wordpress.com/2015/02/26/configurando-mysql-entityframework-code-first-passo-a-passo/[/url] ) )

Entity Framework Code First com MySql

Thiagoporto
   - 22 jul 2013

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

Post mais votado

Prodados Ltda
   - 27 fev 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/

Gabrielsimas
   - 23 jul 2013

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:

#Código

<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:

#Código
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.

Thiagoporto
   - 23 jul 2013

#Código

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!

Gabrielsimas
   - 23 jul 2013

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.

Thiago Santana
   - 27 fev 2015

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

Gabrielsimas
   - 27 fev 2015


Citação:
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

Thiago Santana
   - 27 fev 2015

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

Gabrielsimas
   - 27 fev 2015


Citação:
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.

Thiago Santana
   - 27 fev 2015

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

Gabrielsimas
   - 27 fev 2015


Citação:
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

Thiago Souto
   - 27 jan 2016

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.

Jothaz
   - 27 jan 2016


Citação:
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?

Gabrielsimas
   - 28 jan 2016


Citação:
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:

https://msdn.microsoft.com/en-us/library/bb738533(v=vs.110).aspx

Jothaz
   - 28 jan 2016

É 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:

#Código

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


#Código
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.