Baixe o app para aproveitar ainda mais
Prévia do material em texto
Informações do autor FitzMacken de Tom -Tom FitzMacken é um escritor de programação sênior da equipe de plataforma Web & ferramentas de conteúdo. Por Tom FitzMacken | última atualização de 1 de outubro de 2014 Usando MVC, Entity Framework e ASP.NET, você pode criar um aplicativo web que fornece uma interface para um banco de dados existente. Esta série tutorial mostra como automaticamente gerar código que permite aos usuários exibir, editar, criar e apagar 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ê implantará o site e banco de dados para o Azure. Esta parte da série centra-se na criação de um banco de dados e populá-lo com dados. Esta série foi escrita com contribuições de Tom Dykstra e Rick Anderson. Isso foi melhorado com base no feedback de usuários na seção de comentários. Introdução Este tópico mostra como começar com um existente do banco de dados e criar rapidamente uma aplicação web que permite aos usuários interagir com os dados. Ele usa o Entity Framework 6 e 5 do MVC para criar o aplicativo web. O recurso de andaime do ASP.NET permite que você gerar automaticamente código para exibir, atualizar, criar e excluir dados. Usando as ferramentas de publicação dentro do Visual Studio, você pode facilmente implantar o site e banco de dados para o Azure. Este tópico aborda a situação onde você tem um banco de dados e deseja gerar código para um aplicativo web baseado nos campos de banco de dados. Esta abordagem é chamada de desenvolvimento de banco de dados primeiro. Se você não tiver um banco de dados existente, você pode usar uma abordagem denominada código primeiro desenvolvimento que envolve a definição de classes de dados e gerar o banco de dados das propriedades de classe. Para obter um exemplo introdutório de código primeiro desenvolvimento, consulte Introdução ao ASP.NET MVC 5.Para um exemplo mais avançado, consulte criando um modelo de dados entidade Framework para um ASP.NET MVC 4 App. Para orientação sobre como selecionar qual abordagem Entity Framework para usar, consulte Abordagens de desenvolvimento de Framework de entidade. Pré-requisitos Visual Studio 2013 ou Visual Studio Express 2013 para Web Configurar o banco de dados Para simular o ambiente de ter um banco de dados existente, você irá primeiro criar um banco de dados com alguns dados pré-preenchidos e crie seu aplicativo da web que se conecta ao banco de dados. Este tutorial foi desenvolvido usando LocalDB com Visual Studio 2013 ou Visual Studio Express 2013 Introdução sexta-feira, 12 de junho de 2015 11:57 Página 1 de EF Database First com ASP.NET MVC5 Este tutorial foi desenvolvido usando LocalDB com Visual Studio 2013 ou Visual Studio Express 2013 para Web. Você pode usar um servidor de banco de dados existente em vez de LocalDB, mas dependendo da versão do Visual Studio e o tipo de banco de dados, todas as ferramentas de dados no Visual Studio podem não ser suportadas. Se as ferramentas não estão disponíveis para seu banco de dados, você pode precisar realizar algumas das etapas dentro da suíte de gerenciamento de banco de dados específico para seu banco de dados. Se você tem um problema com as ferramentas de banco de dados na sua versão do Visual Studio, certifique-se que você 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 Ferramentas de dados do Microsoft SQL Server. Inicie o Visual Studio e criar um Projeto de banco de dados do SQL Server. Nomeie o projetoContosoUniversityData. Agora você tem um projeto de banco de dados vazio. Você implantará esse banco de dados para o Azure no final deste tutorial, então você precisará definir o banco de dados SQL Azure como a plataforma de destino para o projeto. Configuração da plataforma de destino não realmente implantar o banco de dados; significa apenas que o projeto de banco de dados irá verificar que o projeto de banco de dados é compatível com a plataforma de destino.Para definir a plataforma de destino, abra as Propriedades do projeto e selecione o Banco de dados SQL do Microsoft Azure para a plataforma de destino. Página 2 de EF Database First com ASP.NET MVC5 Você pode criar as tabelas necessárias para este tutorial, adicionando scripts SQL que definem as tabelas. Botão direito do mouse seu projeto e adicione um novo item. Adicione uma nova tabela chamada estudante. Página 3 de EF Database First com ASP.NET MVC5 No arquivo de tabela, substitua o comando T-SQL com o 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 sincroniza automaticamente com o código. Você pode trabalhar com o código ou designer. Adicione outra tabela. Desta vez, nome do curso e use o seguinte comando T-SQL. CREATE TABLE [dbo].[Course] ( Página 4 de EF Database First com ASP.NET MVC5 CREATE TABLE [dbo].[Course] ( [CourseID] INT IDENTITY (1, 1) NOT NULL, [Title] NVARCHAR (50) NULL, [Credits] INT NULL, PRIMARY KEY CLUSTERED ([CourseID] ASC) ) E, repito mais uma vez para criar uma tabela chamada inscrição. 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 o banco de dados com dados através de um script que é executado depois que o banco de dados é implantado. Adicione um Script de pós-implantação para o projeto. Você pode usar o nome padrão. Adicione o seguinte código T-SQL para o script de pós-implantação. Este script simplesmente adiciona dados ao banco de dados quando nenhum registro correspondente for encontrado. Não substituir ou apagar quaisquer dados que você pode ter digitado 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); Página 5 de EF Database First com ASP.NET MVC5 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 notar queo script de pós-implantação é executado sempre que você implantar o seu projeto de banco de dados. Portanto, você precisa considerar cuidadosamente suas necessidades ao escrever este script. Em alguns casos, você pode desejar começar de um conjunto conhecido de dados cada vez que o projeto será implantado. Em outros casos, você não pode querer alterar os dados existentes de qualquer maneira. Com base em suas necessidades, você pode decidir se você precisa de um script de pós-implantação, ou o que você precisa incluir no script. Para obter mais informações sobre como preencher o seu banco de dados com um script de pós-implantação, consulte Incluindo dados em um projeto de banco de dados do SQL Server. Agora você tem 4 arquivos de script SQL mas sem tabelas reais. Você está pronto para implantar seu projeto de banco de dados para localdb. No Visual Studio, clique o botão Iniciar (ou F5) para construir e implantar seu projeto de banco de dados. Selecione a guia de saída para verificar que a criação e a implantação bem-sucedida. Para ver que o novo banco de dados foi criado, abra o Pesquisador de objetos do SQL Server e procure o nome do projeto no servidor de banco de dados local correto (no presente caso (localdb) \ProjectsV12). Página 6 de EF Database First com ASP.NET MVC5 Para ver que as tabelas são preenchidas com dados, uma tabela com o botão direito e selecione Exibir dados. Uma exibição editável dos dados da tabela é exibida. Seu banco de dados agora é criado e preenchido com dados. O próximo tutorial, você criará um aplicativo web para o banco de dados. Este artigo foi originalmente criado em 31 de janeiro de 2014 De <http://www.asp.net/mvc/overview/getting-started/database-first-development/setting-up-database> Página 7 de EF Database First com ASP.NET MVC5 Por Tom FitzMacken | última atualização de 1 de outubro de 2014 Usando MVC, Entity Framework e ASP.NET, você pode criar um aplicativo web que fornece uma interface para um banco de dados existente. Esta série tutorial mostra como automaticamente gerar código que permite aos usuários exibir, editar, criar e apagar dados que residem em uma tabela de banco de dados. O código gerado corresponde às colunas na tabela de banco de dados. Esta parte da série centra-se na criação do aplicativo da web e gerar os modelos de dados com base em suas tabelas de banco de dados. Criar um novo aplicativo da Web do ASP.NET Em uma nova solução ou a mesma solução que o projeto de banco de dados, crie um novo projeto no Visual Studio e selecione o modelo de aplicativo da Web ASP.NET . Nomeie o projeto ContosoSite. Clique em OK. Na janela novo projeto ASP.NET, selecione o modelo MVC . Você pode desmarcar a opção Host na nuvem por agora, porque você irá implantar o aplicativo para a nuvem mais tarde. Clique em OK para criar o aplicativo. Criando a aplicação Web e modelos de dados sexta-feira, 12 de junho de 2015 12:00 Página 8 de EF Database First com ASP.NET MVC5 O projeto é criado com o padrão arquivos e pastas. Neste tutorial, você usará o Entity Framework 6. Você pode verificar a versão do Entity Framework em seu projeto através da janela de gerenciar pacotes de NuGet. Se necessário, atualize sua versão do Entity Framework. Gerar os modelos Agora você criará modelos Entity Framework das tabelas do banco de dados. Estes modelos são as classes que você irá usar para trabalhar com os dados. Cada modelo espelha uma tabela no banco de dados e contém propriedades que correspondem às colunas na tabela. Botão direito do mouse na pasta modelos e selecione Add e New Item. Página 9 de EF Database First com ASP.NET MVC5 Na janela Add New Item, selecione dados no painel esquerdo e ADO.NET Entity Data Model as opções no painel central. Nomeie o novo arquivo de modelo ContosoModel. Clique em Adicionar. No assistente de modelo de dados de entidade, selecione EF Designer de banco de dados. Página 10 de EF Database First com ASP.NET MVC5 Clique em Next. Se você tem conexões de banco de dados definidas dentro do seu ambiente de desenvolvimento, você pode ver uma dessas conexões pré-selecionados. No entanto, você deseja criar uma nova conexão ao banco de dados que você criou na primeira parte deste tutorial. Clique no botão New Connection . Página 11 de EF Database First com ASP.NET MVC5 Na janela Propriedades de conexão, forneça o nome do servidor local onde seu banco de dados foi criado (neste caso \ProjectsV12 (localdb)). Depois de fornecer o nome do servidor, selecione o ContosoUniversityData os bancos de dados disponíveis. Página 12 de EF Database First com ASP.NET MVC5 Clique em OK. As propriedades de conexão correta agora são exibidas. Você pode usar o nome padrão para conexão no arquivo Web. config Página 13 de EF Database First com ASP.NET MVC5 Clique em Next. Selecione tabelas para gerar modelos para todas as três tabelas. Página 14 de EF Database First com ASP.NET MVC5 Clique em concluir. Se você receber um aviso de segurança, selecione OK para continuar a executar o modelo. Os modelos são gerados a partir de tabelas de banco de dados, e um diagrama é exibido que mostra as propriedades e os relacionamentos entre as tabelas. A pasta de modelos agora inclui muitos novos arquivos relacionados aos modelos que foram gerados a partir do banco de dados. Página 15 de EF Database First com ASP.NET MVC5 O arquivo ContosoModel.Context.cs contém uma classe que deriva da classe DbContext e fornece uma propriedade para cada classe de modelo que corresponde a uma tabela de banco de dados. Os arquivos Course.cs,Enrollment.cse Student.cs contêm as classes de modelo que representam as tabelas de bancos de dados. Você usará a classe de contexto e as classes de modelo ao trabalhar com andaimes. Antes de prosseguir com este tutorial, construa o projeto. Na próxima seção, você irá gerar o código com base em modelos de dados, mas essa seção não funcionará se o projeto não foi construído. Este artigo foi originalmente criado em 30 de outubro de 2013 De <http://www.asp.net/mvc/overview/getting-started/database-first-development/creating-the-web-application> Página 16 de EF Database First com ASP.NET MVC5 Por Tom FitzMacken | última atualização 29 de dezembro de 2014 Usando MVC, Entity Framework e ASP.NET, você pode criar um aplicativo web que fornece uma interface para um banco de dados existente. Esta série tutorial mostra como automaticamente gerar código que permite aos usuários exibir, editar, criar e apagar dados que residem em uma tabela de banco de dados. O código gerado corresponde às colunas na tabela de banco de dados. Esta parte da série enfoca usando ASP.NET andaimes para gerar os controladores e modos de exibição. Adicionar o andaime Você está pronto para gerar o código que irá fornecer as operações de dados padrão para as classes de modelo.Você pode adicionar o código, adicionando um item de andaime. Há muitas opções para o tipo de andaime que você pode adicionar; Neste tutorial, o andaime irá incluir um controlador e exibições que correspondem aos modelos estudante e inscrição que você criou na seção anterior. Para manter a consistência em seu projeto, você irá adicionar o novo controlador para a pasta de controladoresexistente. Botão direito do mouse a pasta de controladores e selecione Add - Novo Item Scaffolded. Selecione a opção de Controlador de 5 MVC com pontos de vista, usando o Entity Framework . Esta opção irá gerar o controlador e vistas para atualização, exclusão, criando e exibindo os dados no seu modelo. Gerando Views sexta-feira, 12 de junho de 2015 12:02 Página 17 de EFDatabase First com ASP.NET MVC5 Selecione o aluno para a classe de modelo e selecione a ContosoUniversityEntities para a classe de contexto.Manter o nome do controlador como StudentsController, Clique em Adicionar. Se você receber um erro, pode ser porque você não construir o projeto na seção anterior. Se assim for, tente construir o projeto e em seguida, adicione novamente o item scaffolded. Após o processo de geração de código estiver concluído, você verá um novo controlador e vistas no seu projeto. Página 18 de EF Database First com ASP.NET MVC5 Siga as mesmas etapas novamente, mas adicionar um andaime para a classe de inscrição. Quando terminar, você deve ter um arquivo EnrollmentsController.cs e uma pasta sob vistas chamado matrículas com o Create, Delete, detalhes, editar e vistas de índice. Adicionar links para novas exibições Para tornar mais fácil para que você navegue para seus novos pontos de vista, você pode adicionar um Página 19 de EF Database First com ASP.NET MVC5 Para tornar mais fácil para que você navegue para seus novos pontos de vista, você pode adicionar um par de hiperlinks para os pontos de vista do índice para alunos e matrículas. Abra o arquivo no Views/Home/Index.cshtml, que é a home page para seu site. Adicione o seguinte código abaixo o jumbotron. <div> @Html.ActionLink("List of students", "Index", "Students")<br /> @Html.ActionLink("List of enrollments", "Index", "Enrollments") </div> Para o ActionLink método, o primeiro parâmetro é o texto para exibir o link. O segundo parâmetro é a ação e o terceiro parâmetro é o nome do controlador. Por exemplo, o primeiro link aponta para a ação de índice em StudentsController. O hiperlink real é construído a partir desses valores. O primeiro link, finalmente, leva o usuário ao arquivo Index.cshtml dentro da pasta Views/estudantes . Visualização estudante views Irá verificar que o código adicionado ao seu projeto corretamente exibe uma lista dos alunos e permite aos usuários editar, criar ou excluir os registros dos alunos no banco de dados. Botão direito do mouse no arquivo Views/Home/Index.cshtml e selecione Exibir no navegador. Nesta página, clique no link para a lista dos alunos. Nesta página, observe a lista dos alunos e links para modificar esses dados. Página 20 de EF Database First com ASP.NET MVC5 Clique no link Criar nova e fornecer alguns valores para um novo aluno. Clique em criare observe que o aluno novo é adicionado à sua lista. Selecione o link Editar e alterar alguns dos valores para um estudante. Página 21 de EF Database First com ASP.NET MVC5 Clique em salvare observe que o registro de estudante foi alterado. Finalmente, selecione o link excluir e confirmar que você deseja excluir o registro clicando no botão excluir . Sem escrever qualquer código, você adicionou vistas que executam operações comuns sobre os dados na tabela aluno. Você deve ter notado que o rótulo de texto para um campo baseia-se na propriedade de banco de dados (tais comoLastName) que não é necessariamente o que você deseja exibir na página da web. Por exemplo, você pode preferir o rótulo a ser Sobrenome. Você irá corrigir este problema de exibição mais tarde no tutorial. Visualização inscrição views Seu banco de dados inclui uma relação um-para-muitos entre as tabelas aluno e inscrição e uma relação um-para-muitos entre as tabelas curso e inscrição. As exibições para inscrição lidar corretamente com esses relacionamentos.Navegue para a página inicial do seu site e selecione o link da lista de Página 22 de EF Database First com ASP.NET MVC5 esses relacionamentos.Navegue para a página inicial do seu site e selecione o link da lista de matrículas e, em seguida, o Criar novo link.O modo de exibição exibe um formulário para criar um novo registro de inscrição. Em particular, observe que o formulário contém duas listas drop-down que são preenchidas com valores de tabelas relacionadas. Além disso, a validação dos valores fornecidos é aplicada automaticamente com base no tipo de dados do campo.Grau requer um número, então uma mensagem de erro é exibida se você tentar fornecer um valor incompatível. Você verificou que os pontos de vista gerados automaticamente permitam que os usuários trabalhar com os dados no banco de dados. No próximo tutorial desta série, você irá atualizar o banco de dados e fazer as alterações correspondentes no aplicativo da web. Este artigo foi originalmente criado em 30 de outubro de 2013 Página 23 de EF Database First com ASP.NET MVC5 Por Tom FitzMacken | última atualização de 1 de outubro de 2014 Usando MVC, Entity Framework e ASP.NET, você pode criar um aplicativo web que fornece uma interface para um banco de dados existente. Esta série tutorial mostra como automaticamente gerar código que permite aos usuários exibir, editar, criar e apagar dados que residem em uma tabela de banco de dados. O código gerado corresponde às colunas na tabela de banco de dados. Esta parte da série centra-se em fazer uma atualização para a estrutura de banco de dados e propagação dessa mudança em todo o aplicativo web. Adicionar uma coluna Se você atualizar a estrutura de uma tabela em seu banco de dados, você precisa garantir que a alteração é propagada para o modelo de dados, exibições e controlador. Para este tutorial, você irá adicionar uma nova coluna à tabela aluno para gravar o nome do meio do aluno. Para adicionar essa coluna, abra o projeto de banco de dados e abra o arquivo Student.sql. Por meio do designer ou o código T-SQL, adicione uma coluna chamada MiddleName que é um nvarchar (50) e permite valores nulos. Implante essa mudança em seu banco de dados local, iniciando seu projeto de banco de dados (ou F5). O novo campo é adicionado à tabela. Se você não vê-lo no Pesquisador de objetos do SQL Server, clique no botão Atualizar no painel. Mudar o banco de dados sexta-feira, 12 de junho de 2015 12:03 Página 24 de EF Database First com ASP.NET MVC5 A nova coluna existe na tabela de banco de dados, mas atualmente não existe na classe de modelo de dados. Você deve atualizar o modelo para incluir sua nova coluna. Na pasta modelos , abra o arquivo ContosoModel.edmx para exibir o diagrama de modelo. Observe que o modelo de aluno não contém a propriedade MiddleName. Botão direito do mouse em qualquer lugar na superfície de design e selecione o Modelo de atualização de banco de dados. No assistente de atualização, selecione a guia Atualizar e a tabela aluno . Página 25 de EF Database First com ASP.NET MVC5 Clique em concluir. Depois que o processo de atualização for concluído, o diagrama de banco de dados inclui a nova propriedadeMiddleName . Salve o arquivo ContosoModel.edmx . Você deve salvar esse arquivo para a nova propriedade ser propagadas para a classe de Student.cs . Agora, você atualizou o banco de dados e o modelo. Compilar a solução. Infelizmente, os pontos de vista ainda não contém a nova propriedade. Para atualizar os pontos de vista você tem duas opções - você também pode re-gerar as vistas adicionando mais uma vez os andaimes para a classe aluno, ou você pode adicionar manualmente a nova propriedade para seus pontos de vista existentes. Neste tutorial, você irá adicionar o andaime novamente porque você não tiver feito alterações personalizadas para as vistas geradas automaticamente. Você pode considerar adicionar manualmente a propriedade quando você tiver feito alterações para os pontos de vista e não quero perder essas alterações. Para garantir que os pontos de vista são recriados, exclua a pasta de alunos em modos de exibiçãoe excluir oStudentsController. Em seguida,botão direito do mouse a pasta de controladores e adicionar andaimes para o modelo de aluno . Novamente, o nome do controlador StudentsController. Selecione OK. Os pontos de vista agora contenham a propriedade MiddleName. Página 26 de EF Database First com ASP.NET MVC5 Na próxima seção, você adicionará código para personalizar o modo de exibição para mostrar detalhes sobre um registro de estudante. Este artigo foi criado originalmente em 13 de dezembro de 2013 Página 27 de EF Database First com ASP.NET MVC5 Por Tom FitzMacken|última atualização de 1 de outubro de 2014 Usando MVC, Entity Framework e ASP.NET, você pode criar um aplicativo web que fornece uma interface para um banco de dados existente. Esta série tutorial mostra como automaticamente gerar código que permite aos usuários exibir, editar, criar e apagar dados que residem em uma tabela de banco de dados. O código gerado corresponde às colunas na tabela de banco de dados. Esta parte da série centra-se sobre como mudar as vistas geradas automaticamente para melhorar a apresentação. Adicionar cursos inscritos para detalhes de estudante O código gerado fornece um bom ponto de partida para seu aplicativo, mas não necessariamente fornece toda a funcionalidade que você precisa em seu aplicativo. Você pode personalizar o código para atender as necessidades particulares do seu aplicativo. Atualmente, sua aplicação não exibir os cursos inscritos para o estudante selecionado.Nesta seção, você adicionará os cursos inscritos para cada aluno para a visualização de detalhes para o aluno. Abrir Students/Details.cshtmle abaixo da última < /dl > guia, mas antes do fechar < / div > marca, adicione o seguinte código. <table class="table"> <tr> <th> Course Title </th> <th> Grade </th> <th> Credits </th> </tr> @foreach (var item in Model.Enrollments) { <tr> <td> @Html.DisplayFor(modelItem => item.Course.Title) </td> <td> @Html.DisplayFor(modelItem => item.Grade) </td> <td> @Html.DisplayFor(modelItem => item.Course.Credits) </td> </tr> } </table> Esse código cria uma tabela que exibe uma linha para cada registro na tabela Matrículas para o estudante selecionado. O método de exibição processa HTML para o objeto (modelItem) que representa a expressão. Você usar o método de visualização (ao invés de simplesmente incorporar o valor da propriedade no código) para certificar-se de que o valor é formatado corretamente com base no seu tipo e o modelo para esse tipo. Neste exemplo, cada expressão retorna uma única propriedade Personalizando uma View sexta-feira, 12 de junho de 2015 12:05 Página 28 de EF Database First com ASP.NET MVC5 no seu tipo e o modelo para esse tipo. Neste exemplo, cada expressão retorna uma única propriedade do registro atual no loop, e os valores são tipos primitivos que são renderizados como texto. Navegue até o modo de exibição de estudantes/índice novamente e selecione detalhes para um dos alunos. Você verá que os cursos matriculados foram incluídos na exibição. Este artigo foi originalmente criado em 30 de outubro de 2013 Página 29 de EF Database First com ASP.NET MVC5 Por Tom FitzMacken | última atualização 29 de dezembro de 2014 Usando MVC, Entity Framework e ASP.NET, você pode criar um aplicativo web que fornece uma interface para um banco de dados existente. Esta série tutorial mostra como automaticamente gerar código que permite aos usuários exibir, editar, criar e apagar dados que residem em uma tabela de banco de dados. O código gerado corresponde às colunas na tabela de banco de dados. Esta parte da série centra-se sobre a adição de anotações de dados para o modelo de dados para especificar os requisitos de validação e exibir a formatação. Isso foi melhorado com base no feedback de usuários na seção de comentários. Adicionar anotações de dados Como você viu em um tópico anterior, algumas regras de validação de dados são aplicadas automaticamente para o entrada do usuário. Por exemplo, você só pode fornecer um número para a propriedade da classe. Para especificar mais as regras de validação de dados, você pode adicionar anotações de dados à sua classe de modelo. Essas anotações são aplicadas em todo o aplicativo web para a propriedade especificada. Você também pode aplicar atributos de formatação que mudar como as propriedades são exibidas; tais como, alterando o valor usado para rótulos de texto. Neste tutorial, você irá adicionar anotações de dados para restringir o comprimento dos valores fornecidos para as propriedades de MiddleName, LastName e FirstName. No banco de dados, esses valores são limitados a 50 caracteres; no entanto, em seu aplicativo da web que limite de caracteres atualmente não é imposta. Se um usuário fornece mais de 50 caracteres para um desses valores, a página irá falhar ao tentar salvar o valor para o banco de dados. Você também irá restringir o grau para valores entre 0 e 4. Abra o arquivo Student.cs na pasta modelos . Adicione o seguinte código realçado para a classe. namespace ContosoSite.Models { using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; public partial class Student { public Student() { this.Enrollments = new HashSet<Enrollment>(); } public int StudentID { get; set; } [StringLength(50)] public string LastName { get; set; } [StringLength(50)] public string FirstName { get; set; } public Nullable<System.DateTime> EnrollmentDate { get; set; } [StringLength(50)] public string MiddleName { get; set; } public virtual ICollection<Enrollment> Enrollments { get; set; } } } Em Enrollment.cs, adicione o seguinte código realçado. Melhorar a validação de dados sexta-feira, 12 de junho de 2015 12:07 Página 30 de EF Database First com ASP.NET MVC5 Em Enrollment.cs, adicione o seguinte código realçado. namespace ContosoSite.Models { using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; public partial class Enrollment { public int EnrollmentID { get; set; } [Range(0, 4)] public Nullable<decimal> Grade { get; set; } public int CourseID { get; set; } public int StudentID { get; set; } public virtual Course Course { get; set; } public virtual Student Student { get; set; } } } Compilar a solução. Navegue até uma página para edição ou criação de um estudante. Se você tentar inserir mais de 50 caracteres, uma mensagem de erro é exibida. Navegue até a página para edição as matrículas e tentativa de fornecer um grau acima de 4. Para uma lista completa de anotações de validação de dados que você pode aplicar a classes e propriedades, consulte System.ComponentModel.DataAnnotations. Adicionar metadados classes Adicionando os atributos de validação diretamente para a classe de modelo funciona quando você não espera o banco de dados para alterar; no entanto, se as alterações de banco de dados e você precisa de regenerar a classe de modelo, você perderá todos os atributos que você tinha aplicado para a classe de modelo. Essa abordagem pode ser muito ineficiente e propenso a perder as regras de validação importante. Para evitar esse problema, você pode adicionar uma classe que contém os atributos de Página 31 de EF Database First com ASP.NET MVC5Para evitar esse problema, você pode adicionar uma classe que contém os atributos de metadados. Quando você associar a classe de modelo para a classe de metadados, esses atributos são aplicados ao modelo. Nesta abordagem, a classe de modelo pode ser regenerada sem perder todos os atributos que foram aplicados para a classe de metadados. Na pasta modelos , adicionar uma classe chamada Metadata.cs. Substitua o código no Metadata.cs com o código a seguir. using System; using System.ComponentModel.DataAnnotations; namespace ContosoSite.Models { public class StudentMetadata { [StringLength(50)] [Display(Name="Last Name")] public string LastName; [StringLength(50)] [Display(Name="First Name")] public string FirstName; [StringLength(50)] [Display(Name="Middle Name")] public string MiddleName; [Display(Name = "Enrollment Date")] public Nullable<System.DateTime> EnrollmentDate; } Página 32 de EF Database First com ASP.NET MVC5 public class EnrollmentMetadata { [Range(0, 4)] public Nullable<decimal> Grade; } } Essas classes de metadados contém todos os atributos de validação que você tinha anteriormente aplicado para as classes de modelo. O atributo de exibição é usado para alterar o valor usado para rótulos de texto. Agora, você deve associar as classes de modelo com as classes de metadados. Na pasta modelos , adicionar uma classe chamada PartialClasses.cs. Substitua o conteúdo do arquivo com o código a seguir. using System; using System.ComponentModel.DataAnnotations; namespace ContosoSite.Models { [MetadataType(typeof(StudentMetadata))] public partial class Student { } [MetadataType(typeof(EnrollmentMetadata))] public partial class Enrollment { } } Observe que cada classe é marcada como uma classe partial , e cada um corresponde a nome e namespace como a classe que é automaticamente gerada. Aplicando o atributo de metadados para a classe parcial, você garantir que os atributos de validação de dados serão aplicados à classe gerada automaticamente. Esses atributos não serão perdidos quando você gerar novamente as classes de modelo, porque o atributo de metadados é aplicado em classes parciais que não são regeneradas. Para regenerar as classes geradas automaticamente, abra o arquivo ContosoModel.edmx. Mais uma vez, botão direito do mouse na superfície de design e selecione o Modelo de atualização de banco de dados. Mesmo que você não mudou o banco de dados, esse processo se regenerará as classes. Na guia Atualizar , selecione tabelas eterminar. Página 33 de EF Database First com ASP.NET MVC5 Salve o arquivo ContosoModel.edmx para aplicar as alterações. Abra o arquivo Student.cs ou o arquivo Enrollment.cs e observe que os atributos de validação de dados que você aplicado anteriormente já não estão no arquivo. No entanto, executar o aplicativo e notar que as regras de validação ainda são aplicadas quando você insere dados. Este artigo foi originalmente criado em 20 de janeiro de 2014 Página 34 de EF Database First com ASP.NET MVC5 Por Tom FitzMacken | última atualização 22 de dezembro de 2014 Usando MVC, Entity Framework e ASP.NET, você pode criar um aplicativo web que fornece uma interface para um banco de dados existente. Esta série tutorial mostra como automaticamente gerar código que permite aos usuários exibir, editar, criar e apagar dados que residem em uma tabela de banco de dados. O código gerado corresponde às colunas na tabela de banco de dados. Esta parte da série enfoca o aplicativo web e banco de dados de publicação para Azure. Você pode ler este tópico para aprender sobre como publicar um aplicativo web e banco de dados, mas para realmente executar as etapas que você deve começar no início do tutorial. Consulte Guia de introdução. Implantar seu aplicativo da web no Azure Você pode abrir uma conta Azure gratuitamente - conseguir créditos você pode usar para testar serviços Azure pagos e mesmo depois que eles são usados até pode ficar com a conta e uso gratuito de serviços Azure. • Você pode ativar os benefícios do assinante MSDN - assinatura MSDN seu dá-lhe créditos a cada mês que você pode usar para serviços pagos de Azure. • Você precisa de uma conta Azure para concluir este tutorial: Para publicar seu aplicativo web, clique no projeto e selecione publicar. Selecione sites Microsoft Azure. Publicar o site MVC no Azure sexta-feira, 12 de junho de 2015 12:09 Página 35 de EF Database First com ASP.NET MVC5 Se você não está assinado para Azure, fornece suas credenciais de conta Azure. Em seguida, selecione New para criar um novo aplicativo web. Crie um nome exclusivo para seu aplicativo da web. Você saberá que o nome é exclusivo... se você ver uma marca de verificação verde à direita do campo nome. Selecione uma região para seu web app Selecione criar novo servidordo banco de dados e forneça um nome de usuário e senha para este novo banco de dados servidor. Quando terminar, clique em criar. Página 36 de EF Database First com ASP.NET MVC5 Seus valores de conexão estão agora prontos. Você pode deixar esses valores inalterados. Clique em Next. Página 37 de EF Database First com ASP.NET MVC5 Clique em Next. Para as configurações, aviso que dois banco de dados conexões são especificados - ApplicationDBContext e ContosoUniversityDataEntities. ApplicationDBContext é a ligação de tabelas de conta de usuário. Estes valores mostram apenas as seqüências de conexão para bancos de dados. Isso não significa que esses bancos de dados serão publicados quando você publicar seu site. Você vai publicar seu projeto de banco de dados depois de ter terminado o aplicativo web de publicação. O botão de reticências (...) ao lado da conexão de banco de dados mostra os detalhes da cadeia de caracteres de conexão. Clique nas reticências ao lado de ContosoUniversityDataEntities. Página 38 de EF Database First com ASP.NET MVC5 Anote o nome do servidor de banco de dados e banco de dados. O nome do servidor é gerado aleatoriamente. O nome do banco de dados é simples, o nome do seu site com _db anexado. Você vai precisar os dois nomes mais tarde, quando você publicar seu banco de dados. Clique em OK para fechar a janela de cadeia de caracteres de conexão de banco de dados. Na janela de publicar Web, clique em próximo para ver o preview. Página 39 de EF Database First com ASP.NET MVC5 Você pode clicar em Iniciar Preview para ver uma lista dos arquivos para publicar. Pois esta é a primeira vez que você tenha publicado neste site, a lista é cada arquivo relevante no projeto. Clique em publicar. Painel de saída irá exibir o resultado de sua publicação. Após a publicação, o site é immedialely lançado em um navegador da web. Seu site foi implantado e você pode registrar um novo usuário para o site; no entanto, suas tabelas no projeto ContosoUniversityData tem ainda não foi publicadas. Se você clicar na lista de alunos link você receberá um erro. Página 40 de EF Database First com ASP.NET MVC5 Publicar o banco de dados para o SQL Azure Antes de publicar o seu banco de dados, você deve Certifique-se de que seu computador pode se conectar ao servidor de banco de dados. O firewall para o seu servidor de banco de dados restringe quais máquinas podem se conectar ao banco de dados. Você precisa adicionar o endereço IP do seu computador para os endereços IP permitidos para o firewall. Login em sua conta Azure através do portal azul. Selecione seu novo banco de dados e selecione gerenciar. Você deveconfigurar seu servidor de banco de dados para permitir conexões de seu computador. Quando você selecionar gerenciar, pedimos que adicione o endereço IP atual, conforme permitido para o servidor de banco de dados. Selecione Sim. Há uma chance de que o endereço IP que você adicionou na etapa anterior não é o único endereço IP, que você precisa configurar para conexões. Você pode tentar fazer o login no banco de dados para ver se as conexões foram devidamente configuradas. Fornece o usuário e a senha que você criou anteriormente. Página 41 de EF Database First com ASP.NET MVC5 Se você receber uma mensagem de erro, você precisa adicionar um outro endereço IP. Clique na mensagem de erro para ver mais detalhes sobre o erro. Nos detalhes, você verá o endereço IP que você precisa para adicionar. Anote esse endereço IP. Fechar esta janela de login e voltar para o portal do Azure. Navegue até o painel de controle para seu banco de dados. Clique em gerenciar permitidos endereços IP. Página 42 de EF Database First com ASP.NET MVC5 Agora, você deve adicionar o endereço IP a partir da mensagem de erro. Altere o intervalo de endereços IP permitidos para incluir aquela da mensagem de erro, ou adicionar o endereço IP como uma entrada separada. Salve a alteração de endereços IP permitidos. Clique em gerenciar e tente iniciar sessão novamente no banco de dados. Você pode precisar esperar alguns minutos antes que os endereços IP permitidos estão corretamente configurados para o firewall. Quando você com êxito pode fazer logon no banco de dados, você terminou de configuração de sua conexão ao banco de dados. Você pode deixar esta janela de gestão aberto, porque você irá verificar o resultado da implantação de banco de dados em breve. Retornar ao seu projeto de banco de dados. Clique no projeto e selecione publicar. Página 43 de EF Database First com ASP.NET MVC5 Na janela Banco de dados de publicação, selecione Editar. Forneça o nome do servidor de banco de dados e suas credenciais de autenticação para o servidor. Depois de fornecer as credenciais, selecione o banco de dados criado a partir da lista de bancos de dados disponíveis. Por padrão, Visual Studio define o nome do campo de banco de dados para o nome do seu projeto, que pode não ser o mesmo que o banco de dados que você criou. Página 44 de EF Database First com ASP.NET MVC5 Clique em OK. Você provavelmente vai querer salvar este perfil, assim você pode publicar atualizações no futuro sem re-digitar todas as informações de conexão. Selecione Criar perfil. Página 45 de EF Database First com ASP.NET MVC5 Ele criará um arquivo em seu projeto chamado ContosoUniversityData.publish.xml. A próxima vez que você deseja publicar o banco de dados para o Azure, simplesmente carrega esse perfil. Agora, clique em publicar para criar o banco de dados no Azure. Depois de correr que por um tempo, a publicação de resultados é exibido. Agora, você pode voltar para o portal de gerenciamento para seu banco de dados. Atualizar o modo de design e observe que as 3 tabelas com dados previamente enchidos já foi implantadas. Página 46 de EF Database First com ASP.NET MVC5 Agora você está pronto para testar o aplicativo web que é implantado no Azure. Navegue até o aplicativo da web no Azure (como http://contosositeexample.azurewebsites.net/). Clique no link para a lista de alunos e você deve ver a exibição de índice para os alunos. Ocasionalmente, o banco de dados e conexão precisam de tempo para ser configurado corretamente. Se você receber um erro, aguarde alguns minutos e tente novamente. Conclusão Esta série fornecido um exemplo simples de como gerar o código de banco de dados existente que permite aos usuários editar, atualizar, criar e excluir dados. Era 5 de ASP.NET MVC, Entity Framework e ASP.NET andaimes para criar o projeto. Para obter um exemplo introdutório de código primeiro desenvolvimento, consulte Introdução ao ASP.NET MVC 5. Página 47 de EF Database First com ASP.NET MVC5 ASP.NET MVC 5. Para um exemplo mais avançado, consulte criar um modelo de dados entidade Framework para um ASP.NET MVC 4 App. Note que a API DbContext que você usar para trabalhar com dados em banco de dados primeiro é o mesmo que a API que você usar para trabalhar com dados em código primeiro. Mesmo se você pretende usar o primeiro banco de dados, você pode aprender como lidar com cenários mais complexos, tais como ler e atualizar dados relacionados, tratando conflitos de simultaneidade, e assim por diante de um código primeiro tutorial. A única diferença está em como o banco de dados, classe de contexto e classes de entidade são criadas. Este artigo foi originalmente criado em 1 de outubro de 2014 Página 48 de EF Database First com ASP.NET MVC5
Compartilhar