Jump to content

Mapeamento O-R


erhnam
 Share

Recommended Posts

Já me fartei de procurar pela net por um tutorial para fazer isto e não encontrei, por isso achei que vocês talvez me possam ajudar 😄

Estou a criar uma web application em ASP.NET e não quero estar a usar uma forma externa ao Visual Studio para fazer a base de dados.

O que pretendo fazer, assim em traços gerais, é desenhar um diagrama de classes no Visual Studio e a partir daí serem geradas as bases de dados no SQL Server (ou noutra coisa qualquer).

Essas classes são as entidades que serão manipuladas no resto da aplicação.

Será que isto é possível?

Eu estava inclinado a pensar que sim porque outras frameworks web funcionam assim, mas na montanha de coisas que o VS faz ainda não consegui descobrir como raio se faz isso. Criar automaticamente objectos para acesso aos dados de uma base de dados existente, sim senhor, mas o contrário ainda não encontrei.

Obrigado pela ajuda

Link to comment
Share on other sites

Hum... espero que já tenhas resolvido o teu problema, mas se não resolveste, apenas usando as ferramentas que o VS dispõe, se não me engano, não consegues, o VS não oferece uma tecnologia ORM, terás de usar uma das várias que existem.

Um que tenho usado já em alguns projectos, sejam aplicações desktop sejam aplicações web em Java é o Hibernate que possui uma versão para .net, o NHibernate, podes ver aqui: http://www.hibernate.org/343.html

Se já for muito tarde fica pelo menos a resposta 😉

Link to comment
Share on other sites

Cheguei de facto à conclusão que o que estava a querer fazer não é possível. Optei então por fazer toda a estrutura da base de dados no Visio em diagramas UML (ou algo do género) e que depois permite a geração da BD automaticamente no SQL Server.

A segunda parte consiste em aceder aos dados de uma forma o mais genérica e transparente possível. Acho que é para isso que o Hibernate é usado e também me falaram de outro, o netTiers.

Ao investigar estes dois, deparei-me com um tal do ADO.NET Entity Framework que pelas descrições permite-me fazer exactamente o que preciso, que é ir à BD e abstrair aquelas tabelas todas e respectivas relações num modelo de objectos. Esta framework está ainda em versão beta, pelo que ainda estou um pouco reticente em usá-la, mas se não me deparar com nenhum problema de maior, deverá ser mesmo esta a minha escolha.

Se alguém andar a trabalhar com isto, agradeço qualquer dica que me possam dar.

Link to comment
Share on other sites

Se usares o VS 2008 ja pode com o Linq podes pegar numa Base de dados e criar classes que interajem directamente com a BD.

Com tabelas, store procedures, etc.

"There are two kinds of programmers. Those who write something to get the work done and those who want to write good code."João BrandãoWebsite e blog: http://jamab.blogspot.com/

Link to comment
Share on other sites

Cheguei de facto à conclusão que o que estava a querer fazer não é possível.

Então acho que chegaste à conclusão errada 😉, o hibernate é uma tecnologia ORM, ela faz exactamente o que querias. Através das classes, criadas por exemplo por um diagrama de classes, cria toda a estrutura da base de dados e abstrai completamente a existência da base de dados, nem sequer precisas saber qual  o motor de base de dados que estás a usar.

Essa framework ADO.net parece interessante mas não conhecia por isso não sei como funciona, mas se é o que precisas.

Link to comment
Share on other sites

Hhmm

Realmente não me tinha apercebido de que o Hibernate faz tudo isso.

Enfim, agora estou com o dilema entre usar a nHibernate e a tal Entity Framework...

Mas porque é que tem de haver sempre uma data de formas de fazer a mesma coisa?  :wallbash:

Alguém com experiência nas duas que possa dar feedback? Ou com experiência em alguma outra framework que permita fazer o mesmo.

Thks!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.