Model First

Este vídeo e passo a passo fornecem uma introdução ao desenvolvimento do Model First usando o Entity Framework. O Model First permite que você crie um novo modelo usando o Entity Framework Designer e, em seguida, gere um esquema de banco de dados a partir do modelo. O modelo é armazenado em um arquivo EDMX (extensão .edmx) e pode ser exibido e editado no Entity Framework Designer. As classes com as quais você interage em seu aplicativo são geradas automaticamente a partir do arquivo EDMX.

Assista ao vídeo

Este vídeo e passo a passo fornecem uma introdução ao desenvolvimento do Model First usando o Entity Framework. O Model First permite que você crie um novo modelo usando o Entity Framework Designer e, em seguida, gere um esquema de banco de dados a partir do modelo. O modelo é armazenado em um arquivo EDMX (extensão .edmx) e pode ser exibido e editado no Entity Framework Designer. As classes com as quais você interage em seu aplicativo são geradas automaticamente a partir do arquivo EDMX.

Apresentado por: Rowan Miller

Vídeo: WMV | MP4 | WMV (ZIP)

Pré-Requisitos

Você precisará ter o Visual Studio 2010 ou o Visual Studio 2012 instalado para concluir este passo a passo.

Se você estiver usando o Visual Studio 2010, também precisará ter o NuGet instalado.

1. Criar o aplicativo

Para manter as coisas simples, vamos criar um aplicativo de console básico que usa o Model First para executar o acesso a dados:

  • Abra o Visual Studio
  • Arquivo -> Novo -> Projeto
  • Selecione Windows no menu à esquerda e Aplicativo de console
  • Insira ModelFirstSample como o nome
  • Selecione OK

2. Criar modelo

Vamos usar o Entity Framework Designer, que está incluído como parte do Visual Studio, para criar nosso modelo.

  • Projeto –> Adicionar novo item...

  • Selecione Dados no menu esquerdo e Modelo de Dados de Entidade ADO.NET

  • Insira BloggingModel como o nome e clique em OK, isso inicia o Assistente de Modelo de Dados de Entidade

  • Selecione Modelo vazio e clique em Concluir

    Create Empty Model

O Designer do Entity Framework é aberto com um modelo em branco. Agora podemos começar a adicionar entidades, propriedades e associações ao modelo.

  • Clique com o botão direito do mouse na superfície de design e selecione Propriedades

  • Na janela Propriedades, altere o Nome do Contêiner da Entidade para BloggingContextEste é o nome do contexto derivado que será gerado para você, o contexto representa uma sessão com o banco de dados, permitindo que consultemos e salvemos dados

  • Clique com o botão direito do mouse na superfície de design e selecione Adicionar Novo –> Entidade...

  • Insira o Blog como o nome da entidade e o BlogId como o nome da chave e clique em OK

    Add Blog Entity

  • Clique com o botão direito do mouse na nova entidade na superfície de design e selecione Adicionar Novo -> Propriedade escalar, insira Nome como o nome da propriedade.

  • Repita esse processo para adicionar uma propriedade Url.

  • Clique com o botão direito do mouse na propriedade Url na superfície de design e selecione Propriedades, na janela Propriedades, altere a configuração Anulável para True, isso nos permite salvar um Blog no banco de dados sem atribuir a ele uma URL

  • Usando as técnicas que você acabou de aprender, adicione uma entidade Post com uma propriedade de chave PostId

  • Adicionar propriedades escalares de Título e Conteúdo à entidade Post

Agora que temos algumas entidades, é hora de adicionar uma associação (ou relação) entre elas.

  • Clique com o botão direito do mouse na superfície de design e selecione Adicionar Novo –> Associação...

  • Criar uma extremidade do ponto de relação para o Blog com uma multiplicidade de Um e o outro ponto de extremidade para Postar com uma multiplicidade de MuitosIsso significa que um Blog tem muitas Postagens e uma Postagem pertence a um Blog

  • Verifique se a caixa Adicionar propriedades de chave estrangeira à caixa Entidade 'Post' está marcada e clique em OK

    Add Association MF

Agora temos um modelo simples do qual podemos gerar um banco de dados e usar para ler e gravar dados.

Model Initial

Etapas adicionais no Visual Studio 2010

Se você estiver trabalhando no Visual Studio 2010, há algumas etapas adicionais que você precisa seguir para atualizar para a versão mais recente do Entity Framework. A atualização é importante porque fornece acesso a uma superfície de API aprimorada, que é muito mais fácil de usar, bem como as correções de bug mais recentes.

Primeiro, precisamos obter a versão mais recente do Entity Framework do NuGet.

  • Projeto –> Gerenciar pacotes NuGet...Se você não tiver a opção Gerenciar Pacotes NuGet... deverá instalar a versão mais recente do NuGet
  • Selecione a guia Online
  • Selecione o pacote EntityFramework
  • Clique em Instalar

Em seguida, precisamos trocar nosso modelo para gerar código que use a API DbContext, que foi introduzida em versões posteriores do Entity Framework.

  • Clique com o botão direito do mouse em um local vazio do seu modelo no Designer do EF e selecione Adicionar item de geração de código...

  • Selecione Modelos Online no menu à esquerda e procure por DbContext

  • Selecione o Gerador DbContext EF 5.x para C#, insira BloggingModel como o nome e clique em Adicionar

    DbContext Template

3. Gerando o banco de dados

Considerando nosso modelo, o Entity Framework pode calcular um esquema de banco de dados que nos permitirá armazenar e recuperar dados usando o modelo.

O servidor de banco de dados instalado com o Visual Studio é diferente dependendo da versão do Visual Studio que você instalou:

  • Se você estiver usando o Visual Studio 2010, criará um banco de dados SQL Express.
  • Se você estiver usando o Visual Studio 2012, criará um banco de dados LocalDB.

Vamos em frente e gerar o banco de dados.

  • Clique com o botão direito do mouse na superfície de design e selecione Gerar Banco de Dados do Modelo...

  • Clique em Nova Conexão... e especifique LocalDB ou SQL Express, dependendo de qual versão do Visual Studio você está usando, insira ModelFirst.Blogging como o nome do banco de dados.

    LocalDB Connection MF

    Sql Express Connection MF

  • Selecione OK e você será perguntado se deseja criar um novo banco de dados, selecione Sim

  • Selecione Avançar e o Designer do Entity Framework calculará um script para criar o esquema de banco de dados

  • Depois que o script for exibido, clique em Concluir e o script será adicionado ao seu projeto e aberto

  • Clique com o botão direito do mouse no script e selecione Executar, será solicitado que você especifique o banco de dados ao qual se conectar, especifique LocalDB ou SQL Server Express, dependendo de qual versão do Visual Studio você está usando

4. Ler e Gravar Dados

Agora que temos um modelo, é hora de usá-lo para acessar alguns dados. As classes que usaremos para acessar dados estão sendo geradas automaticamente para você com base no arquivo EDMX.

Essa captura de tela é do Visual Studio 2012, se você estiver usando o Visual Studio 2010, os arquivos BloggingModel.tt e BloggingModel.Context.tt estarão diretamente em seu projeto, em vez de aninhados no arquivo EDMX.

Generated Classes

Implemente o método Main em Program.cs, conforme mostrado abaixo. Esse código cria uma nova instância do nosso contexto e a usa para inserir um novo Blog. Em seguida, usa uma consulta LINQ para recuperar todos os Blogs do banco de dados ordenado em ordem alfabética pelo Título.

class Program
{
    static void Main(string[] args)
    {
        using (var db = new BloggingContext())
        {
            // Create and save a new Blog
            Console.Write("Enter a name for a new Blog: ");
            var name = Console.ReadLine();

            var blog = new Blog { Name = name };
            db.Blogs.Add(blog);
            db.SaveChanges();

            // Display all Blogs from the database
            var query = from b in db.Blogs
                        orderby b.Name
                        select b;

            Console.WriteLine("All blogs in the database:");
            foreach (var item in query)
            {
                Console.WriteLine(item.Name);
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
    }
}

Agora você pode executar e testar o aplicativo.

Enter a name for a new Blog: ADO.NET Blog
All blogs in the database:
ADO.NET Blog
Press any key to exit...

5. Lidando com alterações de modelo

Agora é hora de fazer algumas alterações em nosso modelo, quando fazemos essas alterações, também precisamos atualizar o esquema de banco de dados.

Começaremos adicionando uma nova entidade de usuário ao nosso modelo.

  • Adicionar um novo nome de entidade de Usuário com Nome de usuário como o nome de chave e Cadeia de caracteres como o tipo de propriedade para a chave

    Add User Entity

  • Clique com o botão direito do mouse na propriedade Nome de Usuário na superfície de design e selecione Propriedades, na janela Propriedades, altere a configuração MaxLength para 50Isso restringe os dados que podem ser armazenados no nome de usuário a 50 caracteres

  • Adicionar uma propriedade escalar DisplayName à entidade User

Agora temos um modelo atualizado e estamos prontos para atualizar o banco de dados para acomodar nosso novo tipo de entidade de usuário.

  • Clique com o botão direito do mouse na superfície de design e selecione Gerar Banco de Dados do Modelo..., o Entity Framework calculará um script para recriar um esquema com base no modelo atualizado.
  • Clique em Concluir
  • Você pode receber avisos sobre como substituir o script DDL existente e as partes de mapeamento e armazenamento do modelo, clique em Sim para ambos os avisos
  • O script SQL atualizado para criar o banco de dados é aberto para você
    O script gerado removerá todas as tabelas existentes e recriará o esquema do zero. Isso pode funcionar para o desenvolvimento local, mas não é viável para enviar alterações por push a um banco de dados que já foi implantado. Se você precisar publicar alterações em um banco de dados que já foi implantado, será necessário editar o script ou usar uma ferramenta de comparação de esquema para calcular um script de migração.
  • Clique com o botão direito do mouse no script e selecione Executar, será solicitado que você especifique o banco de dados ao qual se conectar, especifique LocalDB ou SQL Server Express, dependendo de qual versão do Visual Studio você está usando

Resumo

Neste passo a passo, analisamos o desenvolvimento do Model First, que nos permitiu criar um modelo no Designer EF e, em seguida, gerar um banco de dados desse modelo. Em seguida, usamos o modelo para ler e gravar alguns dados do banco de dados. Por fim, atualizamos o modelo e recriamos o esquema de banco de dados para corresponder ao modelo.