none
Gerar Classes a partir do banco de Dados - C# RRS feed

  • Pergunta

  • Bom dia amigos, alguém poderia informar como eu faço para gerar classe de mapeamento a partir de um banco de dados? Tipo, eu tenho um banco de dados em sqlite e gostaria de ter uma forma dinâmica de gerar os beans, actions e demais classes a partir das tabelas do banco de dados. Tem como fazer isso? Grato pela atenção.
    sexta-feira, 7 de janeiro de 2011 12:32

Respostas

  • Matheus,

    Esse link te ajudará a instalar: http://code.google.com/p/dblinq2007/wiki/Installation

    Pelo que vi o executável gera os arquivos. Ele deve ser acessado pelo CMDDOS.

    DbMetal
     
    /
    code
    :
    File
    .
    cs 
    File
    .
    dbml
    

    O arquivo cs é o arquivo code behind e o dbml é aquele que te falei que gera os diagramas.

    Com isso você conseguirá gerar os arquivos. Como você não está utilizando o SQL Server, sua vida inevitavelmente será mais difícil.

    Depois com os arquivos gerados você coloca na pasta do seu projeto e adiciona no Visual Studio.

    A partir daí você deve poder usar.

    []s,

    terça-feira, 11 de janeiro de 2011 16:56

Todas as Respostas

  • O ideal é você ultilizar um ORM tipo: Entity Framework ou NHibernate.

    Contato:albertim_brasil@hotmail.com - Se ajudei, marca como útil.
    Twitter: Me siga!!
    Blog:http://dotnettime.wordpress.com/

    sexta-feira, 7 de janeiro de 2011 12:37
  • Mas o NHibernate faz isso que eu falei?
    sexta-feira, 7 de janeiro de 2011 12:39
  • Cara,

    Existem várias ferramentas para fazer isso.

    CODESMITH - http://www.codesmithtools.com/downloads

    CODEGENERATOR. - http://www.mygenerationsoftware.com/

    Essas duas acima, você terá que programar o código de saída. Como assim?

    Vamos supor que vocês na sua empresa utilizem um padrão de desenvolvimento diferente. Ai vocês usam a camada de entidade.

    Ex.:

    public class ClienteBE //BE = Business Entity

    {

    }

     

    A partir do banco você conseguirá gerar as entidades, negócios e dados. Tudo do seu jeito. Seguindo seus próprios padrões. Pode gerar em qualquer linguagem também.

    Se estiver usando o Visual Studio, poderá utilizar o Linq To SQL ou o Entitity Framework.

    É isso ai.

     

    sexta-feira, 7 de janeiro de 2011 12:47
  • Eu tava falando com um amigo e ele me sugeriu esse Link To SQL. Essa ferramenta gera as classe a partir da tabela. Mas tipo, se a tabela mudar o procedimento para atualizar as classes é complicado? Porque o problema é que eu tenho uma aplicação que o banco muda quase que diariamente e eu preciso uma forma automática de gerar esses códigos, porque no modelo atual eu mudo o banco e mudo a aplicação manualmente e eu preciso uma forma de autmotizar isso. Então? O Link To Sql resolvi meu problema? Grato pela atenção.
    sexta-feira, 7 de janeiro de 2011 12:54
  • Matheus,

    É bem simples sim. Existe um arquivo com a extensão *.DBML dentro do Visual Studio. Ele é completamente visual.

    O que você terá que fazer: Acessar o banco através do Server Explorer e arrastar a tabela para a tela do DBML.

    Ele atualizará a tabela todos os relacionamentos. 

    Essa é a forma mais fácil de atualizar o DBML, mas existem outras formas.

    ;)

     

    http://weblogs.asp.net/scottgu/archive/2007/08/27/linq-to-sql-part-8-executing-custom-sql-expressions.aspx

    sexta-feira, 7 de janeiro de 2011 13:28
  • Esse arquivo é gerado pela IDE ou eu tenho que gerá-lo? Outra coisa, meu banco é sqlite. Isso afeta alguma coisa?
    sexta-feira, 7 de janeiro de 2011 13:50
  • Vixi... Nunca usei com o Linq to SQL com SQLLITE. 

    sexta-feira, 7 de janeiro de 2011 14:25
  • Mas o NHibernate faz isso que eu falei?


    Não até onde eu sei. Mas o Entity Framework faz, e se vc necessitar atualizar o EF por alguma eventual mudança no banco de dados, ele também faz!


    Contato:albertim_brasil@hotmail.com - Se ajudei, marca como útil.
    Twitter: Me siga!!
    Blog:http://dotnettime.wordpress.com/

    sexta-feira, 7 de janeiro de 2011 18:09
  • Maheus, bom dia.

    Falando de Linq pra SQLite, existe um projeto chamado dblinq que possibilita a utilização do Linq com SQLite. Não conheço a fundo, só pesquisei pq talvez fossemos usar há um tempo.

    Falando de LinqToSQL, sim, o dbml é gerado pela IDE (na verdade, vc insere, como uma classe qualquer).

    Após isso, vc cria uma conexão com a sua base e adiciona suas tabelas ao DBML, o qual cria o mapeamento das tabelas. Caso vc use procedures, tb é possível adicioná-las ao DBML, que irá mapeá-las como métodos.

    O DBML não atualiza suas classes automaticamente quando das mudanças na base. Porém, a facilidade de atualizar manualmente é grande: vc simplesmente abre o DBML, exclui a tabela alterada e readiciona. Pronto!

    Tem um exemplo bem legal aqui.


    Leandro A. da Silva
    sábado, 8 de janeiro de 2011 14:04
  • Caro Leandro, baixei o dblinq, pois ele parece ser uma solução mais adequda para meu caso, pois além de mudança nas tabelas pode haver também mudança quanto a base toda, para mysql, postgres, sqlserver , etc. Porém, veio apenas um zip com umas dll's e um executável com erro. Então, não existe uma forma de fazer o que eu quero de gerar as classes de controle a a partir da base de dados? Será que é tão difícil assim? Obrigado a todos pela atenção.
    segunda-feira, 10 de janeiro de 2011 12:00
  • Matheus,

    Como disse, eu não cheguei a usar. Só descobri que existia pq talvez fosse precisar, mas acabei nem precisando.

    E pelo que eu li na documentação no dblinq tem essa possibilidade de gerar as classes sim.


    Leandro A. da Silva
    segunda-feira, 10 de janeiro de 2011 12:29
  • Matheus,

    Esse link te ajudará a instalar: http://code.google.com/p/dblinq2007/wiki/Installation

    Pelo que vi o executável gera os arquivos. Ele deve ser acessado pelo CMDDOS.

    DbMetal
     
    /
    code
    :
    File
    .
    cs 
    File
    .
    dbml
    

    O arquivo cs é o arquivo code behind e o dbml é aquele que te falei que gera os diagramas.

    Com isso você conseguirá gerar os arquivos. Como você não está utilizando o SQL Server, sua vida inevitavelmente será mais difícil.

    Depois com os arquivos gerados você coloca na pasta do seu projeto e adiciona no Visual Studio.

    A partir daí você deve poder usar.

    []s,

    terça-feira, 11 de janeiro de 2011 16:56
  • Vê se isso te ajuda: Gerador de Classes C#
    segunda-feira, 2 de abril de 2018 17:43