Lançamento: Entity Framework Core 2.0

Facebooktwittergoogle_plusredditpinterestlinkedinmail

A Microsoft anunciou o lançamento da versão 2.0 do Entity Framework Core no dia 14/08/2017, junto com o lançamento do .NET Core 2.0, ASP.NET Core 2.0. O Entity Framework é o ORM (Object/Relational Mapping) mais popular para .net, e essa nova versão vinha sendo bastante esperada pela comunidade. Vamos ver um breve resumo das novidades da versão 2.0.

A primeira grande mudança, é que agora o EF Core 2.0 aponta para a especificação do .NET Standard 2.0.

Melhorias na conversão de LINQ para SQL, tornando as queries mais eficientes na nova versão, com um aumento na quantidade de padrões que podem ser convertidos de LINQ para SQL, com isso uma série de queries que eram avaliadas na aplicação nas versões anteriores agora serão avaliadas no servidor de banco de dados.

Operador LIKE, agora você pode utilizar EF.Functions.Like() in uma query utilizando LINQ, e o EF irá converter para o comando LIKE no SQL ou fazer a avaliação em memória se necessário.

Possibilidade de definir entidades owned (pai) ou child (filha), de forma similar ao EF6.

Outra novidade interessante, é a possibilidade de filtros de query globais (global query filters), que permitem que você crie filtros, que serão utilizados por todas as queries executas, por exemplo:

modelBuilder.Entity<Post>()HasQueryFilter(p => !p.IsDeleted);

Ao criar o filtro acima, quando você fizer uma query como a abaixo, apenas os posts que não foram apagados serão retornados:

var blog = context.Blogs.Include(b => b.Posts).FirstOrDefault(b => b.Id == id);

Outro novo recurso é o DbContext Pooling, que agora permite que a aplicação utilize um pool de instâncias criadas previamente, diminuindo o custo de criar novas instâncias a cada request (chamada).

services.AddDbContextPool<BloggingContext>(options => options.UseSqlServer(connectionString));

E por fim, uma das novidades mais interessantes, agora a interpolação de strings pode ser usada para construir queries parametrizadas de forma transparente. Por exemplo, veja o SQL abaixo:

var name = "Ninja";

using (var context = CreateContext())
{
    context.Customers.FromSql($@"
        SELECT *
        FROM Customers
        WHERE Name = {name}");
}

Irá produzir um parâmetro @p0 com o valor ‘Ninja’ e o SQL final ficará parecido com o abaixo:

SELECT *
FROM Customers
WHERE Name = @p0

Para mais informações e detalhes sobre o EF Core 2.0 veja a documentação no site da Microsoft clicando aqui.

Para ver os posts de lançamento do .net core 2.0 no blog do .net clique nos links abaixo:

Agora é hora de colocar a mão na massa e fazer uns testes com a nova versão.

 

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *