Kurz: Začínáme s EF Database First pomocí MVC 5
Pomocí MVC, Entity Frameworku a ASP.NET scaffoldingu můžete vytvořit webovou aplikaci, která poskytuje rozhraní pro existující databázi. V této sérii kurzů se dozvíte, jak automaticky vygenerovat kód, který uživatelům umožní zobrazovat, upravovat, vytvářet a odstraňovat data uložená v tabulce databáze. Vygenerovaný kód odpovídá sloupcům v tabulce databáze. V poslední části série se dozvíte, jak přidat datové poznámky do datového modelu, abyste mohli určit požadavky na ověření a zobrazit formátování. Až budete hotovi, můžete přejít k článku o Azure, kde se dozvíte, jak nasadit aplikaci .NET a databázi SQL do Azure App Service.
V tomto kurzu se dozvíte, jak začít s existující databází a rychle vytvořit webovou aplikaci, která uživatelům umožní pracovat s daty. K sestavení webové aplikace používá Entity Framework 6 a MVC 5. Funkce generování uživatelského rozhraní ASP.NET umožňuje automaticky generovat kód pro zobrazení, aktualizaci, vytváření a odstraňování dat. Pomocí nástrojů pro publikování v sadě Visual Studio můžete web a databázi snadno nasadit do Azure.
Tato část série se zaměřuje na vytvoření databáze a její naplnění daty.
Tato série byla napsána s příspěvky Toma Dykstra a Ricka Andersona. Vylepšili jsme ho na základě zpětné vazby od uživatelů v části komentáře.
V tomto kurzu jste:
- Nastavení databáze
Požadavky
Nastavení databáze
Pokud chcete napodobit prostředí existující databáze, nejprve vytvoříte databázi s předvyplněnými daty a pak vytvoříte webovou aplikaci, která se k databázi připojí.
Tento kurz byl vyvinut pomocí LocalDB se sadou Visual Studio 2017. Místo LocalDB můžete použít existující databázový server, ale v závislosti na vaší verzi sady Visual Studio a typu databáze nemusí být podporované všechny datové nástroje v sadě Visual Studio. Pokud nástroje nejsou pro vaši databázi k dispozici, možná budete muset provést některé kroky specifické pro databázi v sadě pro správu pro vaši databázi.
Pokud máte problém s databázovými nástroji ve vaší verzi sady Visual Studio, ujistěte se, že máte nainstalovanou nejnovější verzi databázových nástrojů. Informace o aktualizaci nebo instalaci databázových nástrojů najdete v tématu Microsoft SQL Server Data Tools.
Spusťte Visual Studio a vytvořte projekt databáze SQL Server. Pojmenujte projekt ContosoUniversityData.
Teď máte prázdný databázový projekt. Abyste měli jistotu, že tuto databázi můžete nasadit do Azure, nastavíte Azure SQL Database jako cílovou platformu projektu. Nastavení cílové platformy ve skutečnosti databázi nenasadí. znamená to pouze, že databázový projekt ověří, že návrh databáze je kompatibilní s cílovou platformou. Pokud chcete nastavit cílovou platformu, otevřete vlastnosti projektu a vyberte Microsoft Azure SQL Database pro cílovou platformu.
Tabulky potřebné pro tento kurz můžete vytvořit přidáním skriptů SQL, které definují tabulky. Klikněte pravým tlačítkem na projekt a přidejte novou položku. Vyberte Tabulky a zobrazení>Tabulka a pojmenujte ji Student.
V souboru tabulky nahraďte příkaz T-SQL následujícím kódem pro vytvoření tabulky.
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)
)
Všimněte si, že okno návrhu se automaticky synchronizuje s kódem. Můžete pracovat s kódem nebo návrhářem.
Přidejte další tabulku. Tentokrát ho pojmenujte Kurz a použijte následující příkaz T-SQL.
CREATE TABLE [dbo].[Course] (
[CourseID] INT IDENTITY (1, 1) NOT NULL,
[Title] NVARCHAR (50) NULL,
[Credits] INT NULL,
PRIMARY KEY CLUSTERED ([CourseID] ASC)
)
A ještě jednou zopakujte a vytvořte tabulku s názvem Enrollment (Registrace).
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
)
Databázi můžete naplnit daty prostřednictvím skriptu, který se spustí po nasazení databáze. Přidejte do projektu skript po nasazení. Klikněte pravým tlačítkem na projekt a přidejte novou položku. Vyberte Uživatelské skripty>po nasazení. Můžete použít výchozí název.
Do skriptu po nasazení přidejte následující kód T-SQL. Tento skript jednoduše přidá data do databáze, když se nenajde žádný odpovídající záznam. Nepřepíše ani neodstraní žádná data, která jste do databáze zadali.
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);
Je důležité si uvědomit, že skript po nasazení se spustí při každém nasazení databázového projektu. Proto musíte při psaní tohoto skriptu pečlivě zvážit své požadavky. V některých případech můžete chtít začít znovu od známé sady dat při každém nasazení projektu. V jiných případech možná nebudete chtít stávající data žádným způsobem měnit. Na základě vašich požadavků se můžete rozhodnout, jestli potřebujete skript po nasazení nebo co do skriptu zahrnout. Další informace o naplnění databáze skriptem po nasazení najdete v tématu Zahrnutí dat do projektu databáze SQL Server.
Teď máte 4 soubory skriptů SQL, ale žádné skutečné tabulky. Jste připraveni nasadit projekt databáze do localdb. V sadě Visual Studio kliknutím na tlačítko Start (nebo F5) sestavte a nasaďte databázový projekt. Zkontrolujte kartu Výstup a ověřte, že sestavení a nasazení proběhlo úspěšně.
Pokud chcete zjistit, že byla vytvořena nová databáze, otevřete SQL Server Průzkumník objektů a vyhledejte název projektu na správném místním databázovém serveru (v tomto případě (localdb)\ProjectsV13).
Pokud chcete zjistit, že jsou tabulky naplněné daty, klikněte pravým tlačítkem myši na tabulku a vyberte Zobrazit data.
Zobrazí se upravitelné zobrazení dat tabulky. Pokud například vyberete Tabulky>dbo.course>Zobrazit data, zobrazí se tabulka se třemi sloupci (Kurz, Název a Kredity) a čtyřmi řádky.
Další materiály
Úvodní příklad vývoje Code First najdete v tématu Začínáme s ASP.NET MVC 5. Pokročilejší příklad najdete v tématu Vytvoření datového modelu Entity Framework pro aplikaci ASP.NET MVC 4.
Pokyny k výběru přístupu entity frameworku, který se má použít, najdete v tématu Přístupy k vývoji entity frameworku.
Další kroky
V tomto kurzu jste:
- Nastavení databáze
V dalším kurzu se dozvíte, jak vytvořit webovou aplikaci a datové modely.