Welcome to MSDN Blogs Sign in | Join | Help

LUTI @ Microsoft


A tecnologia detalhada, descomplicada e bem empregada
==== Docendo Discimus ====

[PostMortem] Entity Framework – Errata e dúvidas

Bom dia! Recentemente eu gravei um webcast sobre o Entity Framework e no final da sessão houve um painel de perguntas e respostas, então vou aproveitar outras perguntas que eu recebi e escrever um rápido Q&A.

 

P: Se a estrutura do banco mudar, existe uma forma de atualizar automaticamente o modelo?

R: A partir do CTP2 do Entity Designer (que acompanha o Beta 3 do EF) é possível atualizar tanto o modelo conceitual (atualizando também o modelo físico), como é possível atualizar somente o modelo físico e depois criar manualmente as novas entidades e os mapeamentos.

Errata: no webcast eu não respondi corretamente essa pergunta! Eu ainda não havia utilizado essa funcionalidade e a novidade me escapou, pois me lembrei das funcionalidades do EF Beta 3 e não do ED CTP2. Vide os anúncios no fim deste post.

Para compensar essa pequena falha, no próximo ano eu vou escrever um post detalhando essa funcionalidade. J

 

P: Existe suporte a transações no ADO Entity? Isso é feito implicitamente, por exemplo, quando usamos a função para salvar as alterações (é feito atomicamente?), ou devemos explicitamente informar isso ao Framework?

R: Quando você chama o método SaveChanges(), o Entity Framework automaticamente inicia uma transação e faz o commit depois que as alterações foram executadas. Você pode analisar esse comportamento utilizando o Profiler e capturando alguns eventos relacionados às transações. Se desejar, também pode controlar a transação da maneira que quiser, pois através da classe de entidades (gerada pelo EDM) você tem acesso a um objeto do tipo  DbConnection. Exemplo:

 

AWorksModel.AWorksEntities entidades = new AWorksModel.AWorksEntities();

entidades.Connection.BeginTransaction(IsolationLevel.Serializable);

 

P: Hoje o ADO.NET Entity Framework Beta 3 dá suporte p/ Oracle? Caso isto seja possível, ele gera o modelo baseado no banco de dados, assim como é feito no SQL Server?

R: Se você quiser brincar hoje com o EF junto ao Oracle, infelizmente não é possível. Mas já foi anunciado uma série de providers que estarão disponíveis em breve. Para mais informações, veja esse artigo: http://blogs.msdn.com/adonet/archive/2007/12/17/the-ado-net-entity-framework-not-just-for-sql-server.aspx

Não existe um exato detalhamento do que o provider vai suportar ou não, mas provavelmente a funcionalidade básica de gerar o modelo (como é feito com o SQL Server) estará disponível. Fica aqui uma dúvida, não sei se existe uma quantidade mínima de requisitos que um provider deve atender para funcionar com o EF (ou deve implementar tudo?), vou descobrir e depois coloco isso aqui.

 

Para informações do lançamento do EF Beta 3 e ED CTP 2, acesse:

http://blogs.msdn.com/adonet/archive/2007/12/05/ado-net-entity-framework-beta-3-rleased.aspx

http://blogs.msdn.com/adonet/archive/2007/12/06/entity-designer-ctp2.aspx

 

[]s

Luciano Caixeta Moreira

luciano.moreira@microsoft.com

 

=============================================================

This posting is provided "AS IS" with no warranties, and confers no rights

=============================================================

Published Thursday, December 27, 2007 3:50 PM by Luciano Caixeta Moreira

Filed under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

No Comments

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement  
Page view tracker