none
Muitas tabela no Entity Framework RRS feed

  • Pergunta

  • Ola.

    Estou com um grande dilema.

    Tenho uma base de dados com mais de 100 tabelas e necessito criar uma aplicação em camadas. Pensei em utilizar o Entity Framework para fazer isso.

    Gerei o EDMX, mas ficou gigante....... parecia um ninho de tanto relacionamento que ele criou.

    Alguém sabe se existe alguma maneira de gerar varios edmx separados e manter os relacionamentos entre eles, pois tenho tabelas que são referenciadas em várias outras.

     

    Grato

     

    Eduardo

    quinta-feira, 25 de março de 2010 20:17

Respostas

  • Amigo,

    Não quero criticar, mas pra mim esse é um dos grandes problemas do Entity Framework.
    Imagine então um sistema com 300 , 500 ou 1000 tabelas.

    Além do carregamento do EDMX, fica complicado gerenciar mudanças, tudo é muito complicado.

    Pela minha experiência o entity funciona bem pra aplicação menor, pra um aplicação robusta sugiro utilizar um outro ORM, como o NHibernate, que venho utilizando a 1 ano e so tenho otimas experiencias a relatar, pois o mapeamento objeto relacional é fantastico: LEVE e FLEXÍVEL!

    Posso estar errado quanto ao Entity, alias até gostaria de estar, se alguem aqui puder debater sobre isso seria otimo.

     

    []s

     

    www.devtrainer.com.br


    André Rocha Agostinho
    sexta-feira, 26 de março de 2010 05:44
  • Então Galera,

    Eu não acho que o problema de lidar com numerosas tabelas será melhorado usando NHiberntate, EF ou ADO.NET comum. Na prática, o sistema por si só é complexo de usar.

    Quanto à duvida do Eduardo, a solution comporta sim múltiplas arquivos EDMX mas na prática, você não tem como unir os dados entre os diversos EDMX. O que você pode fazer é agrupar tabelas afins (acredito que há grupos de tabelas relacionadas né) em cada edmx de interesse.

    Mas aí fica a dúvida: você realmente precisa mexer no EDMX? Você pretende usar mapeamentos diferentes, como heranças e tal? Caso a resposta seja negativa, acho que não tem com o q se preocupar.

    Arrisca e vê no que dá. O Nhibernate é também cheio de overhead e você que ficar mapear no braço (ou de alguma outra forma automática com geradores de código) todos os relacionamentos, que também serão grandes. Funciona bala e tal, mas vc perderia o poder do LINQ, pq até onde eu saiba, a implementaçãdo Ayende do LINQ to NHibernate não é ainda mainstream no desenvolvimento de aplicações .NET. Mas é um outro caminho...

    Abraços,

    Mário


    Mário Correia de Meyrelles e Costa
    Diretor de Tecnologia
    www.accendis.com.br
    www.twitter.com/accendis

    sexta-feira, 26 de março de 2010 16:13
  • Olá Eduardo,

    O que deseja fazer não é possível utlizando vários EDMX's, não tenho detalhes do seu projeto, mas recomendaria você utilizar o EF 4 com o VS2010, pois com ele é possível você fazer o mapeamento até por código utilizando POCO.

    Venha fazer parte da comunidade de estudos de tecnologias de acesso a dados .Net.

    http://dataservicesbrasil.ning.com/

    Até mais!

    domingo, 28 de março de 2010 03:20

Todas as Respostas

  • Amigo,

    Não quero criticar, mas pra mim esse é um dos grandes problemas do Entity Framework.
    Imagine então um sistema com 300 , 500 ou 1000 tabelas.

    Além do carregamento do EDMX, fica complicado gerenciar mudanças, tudo é muito complicado.

    Pela minha experiência o entity funciona bem pra aplicação menor, pra um aplicação robusta sugiro utilizar um outro ORM, como o NHibernate, que venho utilizando a 1 ano e so tenho otimas experiencias a relatar, pois o mapeamento objeto relacional é fantastico: LEVE e FLEXÍVEL!

    Posso estar errado quanto ao Entity, alias até gostaria de estar, se alguem aqui puder debater sobre isso seria otimo.

     

    []s

     

    www.devtrainer.com.br


    André Rocha Agostinho
    sexta-feira, 26 de março de 2010 05:44
  • Então Galera,

    Eu não acho que o problema de lidar com numerosas tabelas será melhorado usando NHiberntate, EF ou ADO.NET comum. Na prática, o sistema por si só é complexo de usar.

    Quanto à duvida do Eduardo, a solution comporta sim múltiplas arquivos EDMX mas na prática, você não tem como unir os dados entre os diversos EDMX. O que você pode fazer é agrupar tabelas afins (acredito que há grupos de tabelas relacionadas né) em cada edmx de interesse.

    Mas aí fica a dúvida: você realmente precisa mexer no EDMX? Você pretende usar mapeamentos diferentes, como heranças e tal? Caso a resposta seja negativa, acho que não tem com o q se preocupar.

    Arrisca e vê no que dá. O Nhibernate é também cheio de overhead e você que ficar mapear no braço (ou de alguma outra forma automática com geradores de código) todos os relacionamentos, que também serão grandes. Funciona bala e tal, mas vc perderia o poder do LINQ, pq até onde eu saiba, a implementaçãdo Ayende do LINQ to NHibernate não é ainda mainstream no desenvolvimento de aplicações .NET. Mas é um outro caminho...

    Abraços,

    Mário


    Mário Correia de Meyrelles e Costa
    Diretor de Tecnologia
    www.accendis.com.br
    www.twitter.com/accendis

    sexta-feira, 26 de março de 2010 16:13
  • Olá Eduardo,

    O que deseja fazer não é possível utlizando vários EDMX's, não tenho detalhes do seu projeto, mas recomendaria você utilizar o EF 4 com o VS2010, pois com ele é possível você fazer o mapeamento até por código utilizando POCO.

    Venha fazer parte da comunidade de estudos de tecnologias de acesso a dados .Net.

    http://dataservicesbrasil.ning.com/

    Até mais!

    domingo, 28 de março de 2010 03:20
  • Oi,

    Com certeza tem como dividir o arquivo EDMX, agora existem fatores a serem avaliados. Abaixo segue fonte de dados onde pode ser obtida a informação:

     

    http://blogs.msdn.com/b/adonet/archive/2008/11/25/working-with-large-models-in-entity-framework-part-1.aspx

    http://blogs.msdn.com/b/adonet/archive/2008/11/25/working-with-large-models-in-entity-framework-part-2.aspx

    http://msmvps.com/blogs/matthieu/archive/2009/05/27/how-to-split-your-edm.aspx

     

    Favor marcar caso tenha atendido as suas expectativas, boa sorte.

    isNil

     

    • Editado Veranildo Veras segunda-feira, 4 de outubro de 2010 02:49 Faltou informação
    segunda-feira, 4 de outubro de 2010 01:37