Partilhar via


Model First

Este vídeo e o guia passo a passo oferecem uma introdução ao desenvolvimento do Model First usando o Entity Framework. O Model First permite-lhe criar um novo modelo usando o Entity Framework Designer e depois gerar um esquema de base de dados a partir do modelo. O modelo é armazenado num ficheiro EDMX (extensão .edmx) e pode ser visualizado e editado no Entity Framework Designer. As classes com as quais interage na sua aplicação são geradas automaticamente a partir do ficheiro EDMX.

Veja o vídeo

Este vídeo e o guia passo a passo oferecem uma introdução ao desenvolvimento do Model First usando o Entity Framework. O Model First permite-lhe criar um novo modelo usando o Entity Framework Designer e depois gerar um esquema de base de dados a partir do modelo. O modelo é armazenado num ficheiro EDMX (extensão .edmx) e pode ser visualizado e editado no Entity Framework Designer. As classes com as quais interage na sua aplicação são geradas automaticamente a partir do ficheiro EDMX.

Apresentado por: Rowan Miller

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

Pre-Requisites

Vai precisar de ter instalado o Visual Studio 2010 ou Visual Studio 2012 para completar este walkthrough.

Se estiveres a usar Visual Studio 2010, também vais precisar de ter o NuGet instalado.

1. Criar a Aplicação

Para simplificar, vamos construir uma aplicação básica de consola que utiliza o Model First para aceder aos dados:

  • Abrir o Visual Studio
  • Ficheiro -> Novo -> Projeto...
  • Selecione Windows no menu esquerdo e Aplicação de Consola
  • Entra ModelFirstSample como nome
  • Selecione OK

2. Criar Modelo

Vamos utilizar o Entity Framework Designer, que está incluído no Visual Studio, para criar o nosso modelo.

  • Projeto -> Adicionar Novo Item...

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

  • Introduza BloggingModel como nome e clique em OK, isto inicia o Assistente do Modelo de Dados da Entidade

  • Selecione Modelo Vazio e clique em Terminar

    Criar Modelo Vazio

O Entity Framework Designer é 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 na superfície do design e selecione Propriedades

  • Na janela de Propriedades, altere o Nome do Contentor da Entidade para BloggingContextEste é o nome do contexto derivado que será gerado para si, o contexto representa uma sessão com a base de dados, permitindo-nos consultar e guardar dados

  • Clique com o botão direito na superfície de design e selecione Adicionar Nova -> Entidade...

  • Introduza Blog como nome da entidade e BlogId como nome-chave e clique em OK

    Adicionar Entidade do Blog

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

  • Repita este processo para adicionar uma propriedade Url .

  • Clique com o botão direito na propriedade Url na superfície de design e selecione Propriedades, na janela de Propriedades altere a definição Nullable para TrueIsto permite-nos guardar um Blog na base de dados sem lhe atribuir um URL

  • Usando as técnicas que acabaste de aprender, adiciona 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 diferentes, é altura de criar uma associação (ou relação) entre elas.

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

  • Faça com que uma extremidade da relação aponte para o Blog com multiplicidade de Um e a outra extremidade para Publicação com uma multiplicidade de Muitos. Isto significa que um Blog tem muitas Publicações e uma Publicação pertence a um Blog

  • Certifique-se de que a caixa Adicionar propriedades de chave estrangeira à Entidade 'Publicar' está assinalada e clique em OK

    Adicionar Associação MF

Agora temos um modelo simples a partir do qual podemos gerar uma base de dados e usar para ler e escrever dados.

Model Initial

Passos adicionais no Visual Studio 2010

Se estiver a trabalhar no Visual Studio 2010, há alguns passos adicionais que precisa de seguir para atualizar para a versão mais recente do Entity Framework. Atualizar é importante porque lhe dá acesso a uma superfície API melhorada, muito mais fácil de usar, bem como às últimas correções de bugs.

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

  • Projeto –> Gerir pacotes NuGet...Se não tiveres a opção Gerir Pacotes NuGet, deves instalar a versão mais recente do NuGet
  • Selecione a aba Online
  • Selecione o pacote EntityFramework
  • Clique em Instalar

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

  • Clique com o botão direito num espaço vazio do seu modelo no EF Designer e selecione Adicionar Item de Geração de Código...

  • Selecione Modelos Online no menu esquerdo e procure por DbContext

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

    Modelo DbContext

3. Geração da base de dados

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

O servidor de base de dados instalado com o Visual Studio varia consoante a versão do Visual Studio que tem instalado:

  • Se estiveres a usar Visual Studio 2010, vais criar uma base de dados SQL Express.
  • Se estiveres a usar Visual Studio 2012, então vais criar uma base de dados LocalDB .

Vamos avançar e gerar a base de dados.

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

  • Clique em Nova Ligação... e especifique LocalDB ou SQL Express, dependendo da versão do Visual Studio que está a usar, introduza ModelFirst.Blogging como nome da base de dados.

    Ligação LocalDB MF

    Ligação SQL Express MF

  • Selecione OK e ser-lhe-á perguntado se quer criar uma nova base de dados, selecione Sim

  • Selecione Next e o Entity Framework Designer irá calcular um script para criar o esquema da base de dados

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

  • Clique com o botão direito no script e selecione Executar, será solicitado a especificar a base de dados a ligar, especificar LocalDB ou SQL Server Express, dependendo da versão do Visual Studio que está a usar

4. Leitura e Escrita de Dados

Agora que temos um modelo, está na altura de o usar para aceder a alguns dados. As classes que vamos usar para aceder aos dados estão a ser geradas automaticamente para si com base no ficheiro EDMX.

Esta captura de ecrã é do Visual Studio 2012; se estiver a usar o Visual Studio 2010, os ficheiros de BloggingModel.tt e BloggingModel.Context.tt estarão diretamente sob o seu projeto em vez de aninhados no ficheiro EDMX.

Classes Geradas

Implemente o método Main em Program.cs como mostrado abaixo. Este código cria uma nova instância do nosso contexto e depois usa-a para inserir um novo Blog. Depois, utiliza uma consulta LINQ para recuperar todos os Blogs da base de dados ordenados alfabeticamente por 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 podes executar a aplicação e testá-la.

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

5. Lidar com Alterações de Modelos

Agora é altura de fazer algumas alterações ao nosso modelo; quando fizermos estas alterações, também precisamos de atualizar o esquema da base de dados.

Vamos começar por adicionar uma nova entidade de Utilizador ao nosso modelo.

  • Adicione um novo nome de entidade de utilizador com Nome de utilizador como nome da chave e String como tipo de propriedade para a chave

    Adicionar Entidade de Utilizador

  • Clique com o botão direito na propriedade Nome de utilizador na superfície de design e selecione Propriedades. Na janela de Propriedades altere a definição MaxLength para 50Isto restringe os dados que podem ser armazenados no nome de utilizador a 50 caracteres

  • Adicionar uma propriedade escalar DisplayName à entidade User

Agora temos um modelo atualizado e estamos prontos para atualizar a base de dados para acomodar o nosso novo tipo de entidade Utilizador.

  • Clique com o botão direito na superfície de design e selecione Gerar Base de Dados a partir do Modelo..., o Entity Framework calculará um script para recriar um esquema baseado no modelo atualizado.
  • Clique em Concluir
  • Pode receber avisos sobre sobrescrever o script DDL existente e as partes de mapeamento e armazenamento do modelo, clique em Sim para ambos estes avisos
  • O script SQL atualizado para criar a base de dados é aberto para ti
    O script gerado elimina todas as tabelas existentes e depois recria o esquema do zero. Isto pode funcionar para o desenvolvimento local, mas não é viável para promover alterações numa base de dados que já foi implementada. Se precisar de publicar alterações numa base de dados que já foi implementada, terá de editar o script ou usar uma ferramenta de comparação de esquemas para calcular um script de migração.
  • Clique com o botão direito no script e selecione Executar, será solicitado a especificar a base de dados a ligar, especificar LocalDB ou SQL Server Express, dependendo da versão do Visual Studio que está a usar

Resumo

Neste walkthrough, analisámos o desenvolvimento do Model First, que nos permitiu criar um modelo no EF Designer e depois gerar uma base de dados a partir desse modelo. Depois usámos o modelo para ler e escrever alguns dados da base de dados. Finalmente, atualizámos o modelo e depois recriámos o esquema da base de dados para corresponder ao modelo.