Usuário com melhor resposta
Muitas tabela no Entity Framework

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
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
André Rocha Agostinho- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 26 de março de 2010 12:51
- Marcado como Resposta AndreAlvesLimaModerator domingo, 13 de junho de 2010 19:48
-
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- Sugerido como Resposta AndreAlvesLimaModerator domingo, 28 de março de 2010 12:52
- Marcado como Resposta AndreAlvesLimaModerator domingo, 13 de junho de 2010 19:48
-
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!
- Sugerido como Resposta AndreAlvesLimaModerator domingo, 28 de março de 2010 12:52
- Marcado como Resposta AndreAlvesLimaModerator domingo, 13 de junho de 2010 19:48
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
André Rocha Agostinho- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 26 de março de 2010 12:51
- Marcado como Resposta AndreAlvesLimaModerator domingo, 13 de junho de 2010 19:48
-
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- Sugerido como Resposta AndreAlvesLimaModerator domingo, 28 de março de 2010 12:52
- Marcado como Resposta AndreAlvesLimaModerator domingo, 13 de junho de 2010 19:48
-
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!
- Sugerido como Resposta AndreAlvesLimaModerator domingo, 28 de março de 2010 12:52
- Marcado como Resposta AndreAlvesLimaModerator domingo, 13 de junho de 2010 19:48
-
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://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