Entity Framework Power Tools CTP1

05/18/2011 19:56:00 By Felipe Pessoto

O time do Entity Framework/ADO.NET acabou de lançar uma ferramenta sensional, o Entity Framework Power Tools CTP1.

Quem usa Code First sempre tem que ter um trabalhão pra mapear um banco de dados já existente, principalmente se for muito grande e com falhas de modelagem. Com essa nova ferramenta, quando você clica com o botão direito em um projeto C#, tem uma nova opção: "Entity Framework -> Reverse Engineer Code First"

Read more...

EF Feature CTP5

12/07/2010 21:51:00 By Felipe Pessoto

Com alguns dias de atraso, foi lançado o quinto e último CTP do Entity Framework Code First. A versão final é esperada para o final do primeiro trimestre de 2011. É importante resaltar os known issues:

  • Table & Column Mapping in the Fluent API
    We have done some work to make the mapping of classes/properties to tables/columns simpler and more intuitive in CTP5. We are still working to improve the quality of this new work, particularly around the mapping of inheritance hierarchies.
  • Pluggable Conventions 
    CTP5 includes a very early preview of this feature that is not complete and has not been extensively tested.
  • The new Validation feature is currently only supported when using Code First  


As novidades são:

  Read more...

Associando entidades por ID no Entity Framework

06/17/2009 14:33:00 By Felipe Pessoto

Uma dica que pode ajudar muito:

Imagine que temos um relacionamento da tabela Mensagem com a Usuario, normalmente fariamos o seguinte para criar um relacionamento:

Mensagem mens = new Mensagem();
mens.Usuario = from us in contexto.UsuarioSet
where us.Id = 10
select us;

contexto.AddToMensagemSet(mens);
contexto.SaveChanges();


O problema é fazemos uma consulta no banco somente para criar o relacionamento, sendo que já temos a informação necessária para isso, o Id do Usuario.
Existe uma outra forma de fazer isso sem consultar o banco de dados:

Mensagem mens = new Mensagem();
mens.UsuarioReference.EntityKey = new EntityKey("YourEntitiesModel.UsuarioSet", "Id", 10);

contexto.AddToMensagemSet(mens);
contexto.SaveChanges();

Assim economizamos um Select, o que faz a diferença quando temos muitas chamadas