Utilizar LINQ to SQL é fácil, mas só funciona com banco de dados MS-SQL.
E se minha necessidade for utilizar o MySQL como banco de
dados? Nesse caso teremos que utilizar o LINQ to Entities. O conceito é o mesmo
e funciona para qualquer banco de dados.
Nesse caso eu vou utilizar o MySQL 5. 5.0.45.
Criei uma tabela com a seguinte estrutura:
Onde a coluna id é
por padrão incrementada 1 a 1.
Já no Visual Studio, precisamos adicionar uma conexão
apontando para o MySQL.
Clique na guia Server Explorer e clique em adicionar
conexão. A janela a seguir irá aparecer:
Escolha MySQL e clique em ok.
Preencha os campos conforme seu banco de dados. No meu caso
o nome do banco de dados é Projeto e esta localizada no Localhost. Vou usar o
usuário root para acessar.
Após criar a conexão, é necessário adicionar o item ADO.NET Entity Data Model, como abaixo . Vou nomear o arquivo como Banco.edmx
e clicar em Add.
A janela a seguir será apresentada, escolha a opção “Generate from database” e clique em Next.
Escolha a conexão para o banco de dados. E clique em Next.
Será apresentada a janela a seguir, nessa janela podemos
escolher as entidades que vamos utilizar. No meu caso, somente a entidade usuário.
Clique em Finish
Pronto, o mapeamento já foi feito e podemos trabalhar com a
entidade criada.
Para inserir um registro faremos da seguinte maneira:
Banco bd = new Banco();//Representa o
contexto do banco de dados
usuario u = new usuario();
u.nome = "Celso
Zequim";
u.email = "czequim@gmail.com";
bd.AddTousuario(u);
bd.SaveChanges();
Ao pressionar F5, podemos ver que o registro foi inserido no
Banco de dados:
Para ler essa informação e exibir no console é simples:
var
usuarios = from ur in
bd.usuario orderby ur.nome select ur;
foreach
(usuario usr in
usuarios)
{
Console.Write(usr.nome);
Console.WriteLine();
}
O resultado é o seguinte:
Simples... e funciona para qualquer banco de dados, como: MySQL, Oracle, Postgres, Firebird... etc.
:D
Muito bom o seu post!
ResponderExcluirMas estou com uma dúvida: no meu visualstudio nãoa aparece aquela opção do MySQL ao clicar em adicionar conexão. Preciso instalar alguma coisa? oO
Muito obrigado.
Olá,
Excluirobrigado pelo comentário.
o que acontece nesse caso é a falta do MySQL Connector.
no meu caso eu tenho instalado o MySQL Connector Net 6.6.5.
qualquer novidade me avise.
um abraço.
Muito obrigado pela resposta.
ExcluirEu tenho instalado o 6.7.4.0, e achei no google que você precisa adicionar uma referência clicando com o botão direito no projeto e em Add Reference, e depois selecionar o MySql.Data e ok.
Mas mesmo assim não aparece para mim essa opção ao tentar adicionar a conexão como na imagem do post.
Sabe mais ou menos onde está o problema?
Obrigadão pela ajuda. Abraços.
Descobri qual era o problema:
ExcluirA partir da versão 6.7 (atual (27/08/2013)) o MySQL Conector não tem suporte nativo para a integração ao VisualStudio, no meu caso, 2012.
Tem um aviso na página de download do MySQl Conector: http://dev.mysql.com/downloads/connector/net/
Esse aviso diz isso e te fornece um link para download desse plugin (e mais) para o Visual Studio conectar ao MySQL como está na imagem do seu post: http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows.html
Agora funcionou perfeitamente vou continuar o caminho do post aqui.
Obrigado pela ajuda e Abraços.
Nossa que chato isso.
Excluireu não tinha deparado com essa situação.
mas foi bom você ter comentado.
muito obrigado.
um abraço.
Só mais um comentário:
ExcluirDependendo da versão, não será a mesma forma de persistência que você usou, pois no meu caso por exemplo seria:
bd.usuario.Add(u);
bd.SaveChanges();
Funcionou perfeitamente.
Outro detalhe é que estava dando uma NullReferenceException na linha do método SaveChanges().
Para resolver isso é só trocar as referências dos MySql.* clicando no projeto com o botão direito e depois em Add Reference.
Muito obrigado você. Esse foi o melhor post que encontrei falando disso. Já sou programador, mas estou totalmente cru na plataforma .NET.
Abraços.