[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


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

Comments (0)

Skip to main content