[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: https://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:

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

https://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

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