Compartilhar via


Tutorial: Introdução ao Banco de Dados EF primeiro usando o MVC 5

Usando MVC, Entity Framework e ASP.NET Scaffolding, você pode criar um aplicativo Web que fornece uma interface para um banco de dados existente. Esta série de tutoriais mostra como gerar automaticamente o código que permite que os usuários exibam, editem, criem e excluam dados que residem em uma tabela de banco de dados. O código gerado corresponde às colunas na tabela de banco de dados. Na última parte da série, você aprenderá a adicionar anotações de dados ao modelo de dados para especificar os requisitos de validação e exibir a formatação. Quando terminar, você poderá avançar para um artigo do Azure para saber como implantar um aplicativo .NET e um banco de dados SQL em Serviço de Aplicativo do Azure.

Este tutorial mostra como começar com um banco de dados existente e criar rapidamente um aplicativo Web que permite que os usuários interajam com os dados. Ele usa o Entity Framework 6 e o MVC 5 para criar o aplicativo Web. O recurso ASP.NET Scaffolding permite que você gere automaticamente código para exibir, atualizar, criar e excluir dados automaticamente. Usando as ferramentas de publicação no Visual Studio, você pode implantar facilmente o site e o banco de dados no Azure.

Esta parte da série se concentra em criar um banco de dados e preenchê-lo com dados.

Esta série foi escrita com contribuições de Tom Dykstra e Rick Anderson. Ele foi aprimorado com base nos comentários dos usuários na seção de comentários.

Neste tutorial, você:

  • Configurar o banco de dados

Pré-requisitos

Visual Studio 2017

Configurar o banco de dados

Para imitar o ambiente de ter um banco de dados existente, primeiro você criará um banco de dados com alguns dados pré-preenchidos e, em seguida, criará seu aplicativo Web que se conecta ao banco de dados.

Este tutorial foi desenvolvido usando o LocalDB com o Visual Studio 2017. Você pode usar um servidor de banco de dados existente em vez do LocalDB, mas dependendo da versão do Visual Studio e do seu tipo de banco de dados, talvez não haja suporte para todas as ferramentas de dados no Visual Studio. Se as ferramentas não estiverem disponíveis para seu banco de dados, talvez seja necessário executar algumas das etapas específicas do banco de dados no pacote de gerenciamento do banco de dados.

Se você tiver um problema com as ferramentas de banco de dados em sua versão do Visual Studio, verifique se instalou a versão mais recente das ferramentas de banco de dados. Para obter informações sobre como atualizar ou instalar as ferramentas de banco de dados, consulte Microsoft SQL Server Data Tools.

Inicie o Visual Studio e crie um projeto de banco de dados SQL Server. Nomeie o projeto ContosoUniversityData.

criar projeto de banco de dados

Agora você tem um projeto de banco de dados vazio. Para garantir que você possa implantar esse banco de dados no Azure, você definirá SQL do Azure Banco de Dados como a plataforma de destino para o projeto. Definir a plataforma de destino não implanta o banco de dados; isso significa apenas que o projeto de banco de dados verificará se o design do banco de dados é compatível com a plataforma de destino. Para definir a plataforma de destino, abra as Propriedades do projeto e selecione Banco de Dados SQL do Microsoft Azure para a plataforma de destino.

Você pode criar as tabelas necessárias para este tutorial adicionando scripts SQL que definem as tabelas. Clique com o botão direito do mouse no projeto e adicione um novo item. Selecione Tabelas e Tabelas de Exibições> e nomeie-a como Aluno.

No arquivo de tabela, substitua o comando T-SQL pelo código a seguir para criar a tabela.

CREATE TABLE [dbo].[Student] (
    [StudentID]      INT           IDENTITY (1, 1) NOT NULL,
    [LastName]       NVARCHAR (50) NULL,
    [FirstName]      NVARCHAR (50) NULL,
    [EnrollmentDate] DATETIME      NULL,
    PRIMARY KEY CLUSTERED ([StudentID] ASC)
)

Observe que a janela de design é sincronizada automaticamente com o código. Você pode trabalhar com o código ou o designer.

mostrar código e design

Adicione outra tabela. Desta vez, nomeie-o como Curso e use o comando T-SQL a seguir.

CREATE TABLE [dbo].[Course] (
    [CourseID] INT           IDENTITY (1, 1) NOT NULL,
    [Title]    NVARCHAR (50) NULL,
    [Credits]  INT           NULL,
    PRIMARY KEY CLUSTERED ([CourseID] ASC)
)

E repita mais uma vez para criar uma tabela chamada Registro.

CREATE TABLE [dbo].[Enrollment] (
    [EnrollmentID] INT IDENTITY (1, 1) NOT NULL,
    [Grade]        DECIMAL(3, 2) NULL,
    [CourseID]     INT NOT NULL,
    [StudentID]    INT NOT NULL,
    PRIMARY KEY CLUSTERED ([EnrollmentID] ASC),
    CONSTRAINT [FK_dbo.Enrollment_dbo.Course_CourseID] FOREIGN KEY ([CourseID]) 
        REFERENCES [dbo].[Course] ([CourseID]) ON DELETE CASCADE,
    CONSTRAINT [FK_dbo.Enrollment_dbo.Student_StudentID] FOREIGN KEY ([StudentID]) 
        REFERENCES [dbo].[Student] ([StudentID]) ON DELETE CASCADE
)

Você pode preencher seu banco de dados com dados por meio de um script executado após a implantação do banco de dados. Adicione um script pós-implantação ao projeto. Clique com o botão direito do mouse no projeto e adicione um novo item. Selecione Scripts>de Usuário Após a Implantação Script. Você pode usar o nome padrão.

Adicione o código T-SQL a seguir ao script pós-implantação. Esse script simplesmente adiciona dados ao banco de dados quando nenhum registro correspondente é encontrado. Ele não substitui nem exclui os dados que você pode ter inserido no banco de dados.

MERGE INTO Course AS Target 
USING (VALUES 
        (1, 'Economics', 3), 
        (2, 'Literature', 3), 
        (3, 'Chemistry', 4)
) 
AS Source (CourseID, Title, Credits) 
ON Target.CourseID = Source.CourseID 
WHEN NOT MATCHED BY TARGET THEN 
INSERT (Title, Credits) 
VALUES (Title, Credits);

MERGE INTO Student AS Target
USING (VALUES 
        (1, 'Tibbetts', 'Donnie', '2013-09-01'), 
        (2, 'Guzman', 'Liza', '2012-01-13'), 
(3, 'Catlett', 'Phil', '2011-09-03')
)
AS Source (StudentID, LastName, FirstName, EnrollmentDate)
ON Target.StudentID = Source.StudentID
WHEN NOT MATCHED BY TARGET THEN
INSERT (LastName, FirstName, EnrollmentDate)
VALUES (LastName, FirstName, EnrollmentDate);

MERGE INTO Enrollment AS Target
USING (VALUES 
(1, 2.00, 1, 1),
(2, 3.50, 1, 2),
(3, 4.00, 2, 3),
(4, 1.80, 2, 1),
(5, 3.20, 3, 1),
(6, 4.00, 3, 2)
)
AS Source (EnrollmentID, Grade, CourseID, StudentID)
ON Target.EnrollmentID = Source.EnrollmentID
WHEN NOT MATCHED BY TARGET THEN
INSERT (Grade, CourseID, StudentID)
VALUES (Grade, CourseID, StudentID);

É importante observar que o script pós-implantação é executado sempre que você implanta seu projeto de banco de dados. Portanto, você precisa considerar cuidadosamente seus requisitos ao escrever esse script. Em alguns casos, talvez você queira começar de novo a partir de um conjunto conhecido de dados sempre que o projeto for implantado. Em outros casos, talvez você não queira alterar os dados existentes de forma alguma. Com base em seus requisitos, você pode decidir se precisa de um script pós-implantação ou o que precisa incluir no script. Para obter mais informações sobre como preencher seu banco de dados com um script pós-implantação, consulte Incluindo dados em um projeto de banco de dados SQL Server.

Agora você tem 4 arquivos de script SQL, mas nenhuma tabela real. Você está pronto para implantar seu projeto de banco de dados no localdb. No Visual Studio, clique no botão Iniciar (ou F5) para criar e implantar seu projeto de banco de dados. Verifique a guia Saída para verificar se o build e a implantação foram bem-sucedidos.

Para ver se o novo banco de dados foi criado, abra SQL Server Pesquisador de Objetos e procure o nome do projeto no servidor de banco de dados local correto (neste caso (localdb)\ProjectsV13).

Para ver se as tabelas são preenchidas com dados, clique com o botão direito do mouse em uma tabela e selecione Exibir Dados.

mostrar dados da tabela

Uma exibição editável dos dados da tabela é exibida. Por exemplo, se você selecionar Tabelas>dbo.course>Exibir Dados, verá uma tabela com três colunas (Curso, Título e Créditos) e quatro linhas.

Recursos adicionais

Para obter um exemplo introdutório de desenvolvimento do Code First, consulte Introdução com ASP.NET MVC 5. Para obter um exemplo mais avançado, consulte Criando um modelo de dados do Entity Framework para um aplicativo ASP.NET MVC 4.

Para obter diretrizes sobre como selecionar qual abordagem do Entity Framework usar, consulte Abordagens de desenvolvimento do Entity Framework.

Próximas etapas

Neste tutorial, você:

  • Configurar o banco de dados

Avance para o próximo tutorial para saber como criar o aplicativo Web e os modelos de dados.