Introdução ao Entity Framework Core 1

29 fev

Fala Galera,

Hoje vamos falar sobre outra novidade da nova arquitetura .NET Core, o Entity Framework Core 1.

Ao longo do tempo o Entity Framework foi mudando, ganhando mais funcionalidades como Code First, Migrations e etc.

Agora a nova evolução atende pelo nome de Entity Framework Core 1, uma biblioteca totalmente reescrita, usando padrões atuais de arquitetura e de desenvolvimento tudo isso para que possamos utilizar o mesmo Entity Framework Core 1 tanto em Linux, Windows e Mac.

Outra mudança que ocorreu no EF Core 1 é que não precisamos utilizar o .NET FULL, ou seja, podemos utilizar o EF Core 1 em aplicativos WUP (Windows Universal Plataform) como em Celular e Tablet.

O EF Core 1 obviamente pode ser executado no DNX (Coreclr, Mono) e pode ser executado no ambiente .NET FULL porém o framework minimo deverá ser o 4.5.1

Instalando

O pacote de instalação do EF Core 1 está disponível via nuget utilizando o comando: Install-Package EntityFramework.Core -Pre

Caso queira utilizar a funcionalidade de Migrations devemos instalar outro pacote do EF Core 1 utilizando o comando: Install-Package EntityFramework.Commands -Pre

O Entity Framework  6 continuará a ser instalado pelo comando Install-Package EntityFramework. 

Importante: Aplicativos que utilizam o Entity Framework 6 não serão atualizados para o Entity Framework Core 1.

Como são pacotes distintos e com novas funcionalidades e recursos, os projetos que utilizando o EF 6 não serão atualizados automaticamente por questão de compatibilidade.

Apresentando o GraphBehavior

A maioria das mudanças que ocorreram com o EF Core 1 foi em torno de sua sintaxe.

Métodos como DbSet.Add e DbSet.AddRange tiveram modificações, por exemplo, o AddRange perdeu força e o método DbSet.Add ganhou uma sobrecarga no qual agora aceita um intervalo de valores.

Outra mudança que tivemos é a forma de incluir objetos, no EF 6 quando você incluia um objeto, esse objeto afetava (quase sempre) todo o gráfico de objeto que o contexto estava guardando, podendo causar inconsistência.

Agora no EF Core 1 os métodos de inclusão como Add, Attach, Update possuem um novo parâmetro que é um Enum chamado GraphBehavior

Os valores do GraphBehavior são IncludeDependents e SingleObject

O padrão para os métodos acima é GraphBehavior.IncludeDependents, o que significa usá-lo de uma forma similiar ao EF 6, por exemplo:

context.Users.Add (newUser);

O problema é que o comportamento padrão, IncludeDependents, é, literalmente, para objetos dependentes. Utilizando o  IncludeDependents o EF Core 1 não irá incluir todos os objetos relacionados, e esta distinção é importante.

Objetos em um relacionamento são principais ou dependentes. Na base de dados estes objetos são facilmente identificados porque o dependente é aquele que tem a chave estrangeira de volta para o principal.

Entity Framework Core 1 – noSQL

Nos próximos lançamento do EF Core 1, o time de desenvolvimento estará se concentrando na implementação do Data Store SQLite e isso é devido porque EF Core 1 agora suporta WUP como mencionando acima.

Porém está previsto que no EF Core 1 terá implementação para banco noSQL como REDIS e boatos que o MongoDB também estará em pauta.

Seria muito legal, se o EF Core 1 suportasse o MongoDB e um golaço da Microsoft nesse sentido.

O que acharam do EF Core 1 ? Não deixem de comentar.

No próximo estarei mostrando como se criar uma aplicação utilizando o EF Core 1, não percam!

Abs e até próximo

One Reply to “Introdução ao Entity Framework Core 1”

  1. Pingback: Criando aplicações utilizando ASP.NET Core MVC com Entity Framework Core - Rafael Cruz

Deixe uma resposta

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