EF?

Tags: 資料, 資料庫,

本系列為微軟官網譯文,為Asp.net Mvc的學習者提供。

工具/原料

Vs2013或Vs2013 express for web

前言

這個主題展示瞭如何從一個現有的資料庫,並迅速開始建立一個web應用程式,允許使用者與資料進行互動。它使用EF6和MVC5構建web應用程式。ASP.NET MVC能使您能夠自動生成程式碼顯示、更新、建立和刪除資料。使用Visual Studio內出版工具,您可以很容易地將網站和資料庫部署到Azure。

這個主題地址的情況你有一個數據庫,並想為web應用程式生成程式碼基於資料庫的欄位。這種方法被稱為資料庫首先開發。如果你不已經有一個現有的資料庫,您可以使用一個方法稱為程式碼首先開發涉及定義資料類和生成資料庫的類屬性。

程式碼首先發展一個介紹性的例子,請參閱開始使用ASP.MVC 5。更先進的例子,請參閱建立一個數據模型實體框架的ASP.MVC 4應用程式。

指導選擇使用哪個實體框架的方法,看到實體框架的開發方法。

方法/步驟1

設定資料庫

模擬環境的一個現有的資料庫,您將首先建立一個數據庫和一些預先填寫資料,然後建立web應用程式連線到資料庫。

本教程是使用LocalDB與Visual Studio 2013和Visual Studio Express 2013網路。您可以使用現有的資料庫伺服器,而不是LocalDB,但這取決於你的版本的Visual Studio和型別的資料庫,所有的資料在Visual Studio工具可能不支援。如果沒有可用的工具為您的資料庫,您可能需要執行一些特定於資料庫的步驟在您的資料庫管理套件。

如果你有一個問題與資料庫工具在你的版本的Visual Studio,確保您已經安裝了最新版本的資料庫工具。資訊更新或安裝資料庫工具,看到Microsoft SQL Server資料的工具。

啟動Visual Studio和建立一個SQL Server資料庫專案。專案ContosoUniversityData名稱。

EF Database First:[1]開始使用EF6+MVC5

您現在有了一個空的資料庫專案。稍後您將這個資料庫部署到Azure在本教程中,所以你需要設定SQL Azure資料庫作為專案的目標平臺。設定目標平臺並不實際部署資料庫;它只意味著資料庫專案將驗證資料庫設計與目標平臺相容。設定目標平臺,開啟專案屬性並選擇微軟Azure SQL資料庫為目標平臺。

EF Database First:[1]開始使用EF6+MVC5

您可以建立所需的表本教程通過新增SQL指令碼定義表。右鍵單擊您的專案並新增一個新條目。

EF Database First:[1]開始使用EF6+MVC5

新增一個新的名為Student的表。

EF Database First:[1]開始使用EF6+MVC5

表中的檔案,用下面的程式碼代替t - sql命令來建立表。

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))

注意到設計視窗自動同步程式碼。您可以使用程式碼或設計師。

EF Database First:[1]開始使用EF6+MVC5

新增另一個表中。這一次名字,使用下面的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))

重複一次,建立一個名為登記的表。

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)

你可以通過指令碼用資料填充資料庫,資料庫部署後執行。部署後腳本新增到專案中。您可以使用預設的名稱。

EF Database First:[1]開始使用EF6+MVC5

下面的t - sql程式碼新增到部署後腳本。這個指令碼簡單地將資料新增到資料庫時,沒有找到匹配的記錄。它沒有覆蓋或刪除任何資料輸入到資料庫中。

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 TargetUSING (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.StudentIDWHEN NOT MATCHED BY TARGET THEN INSERT (LastName, FirstName, EnrollmentDate)VALUES (LastName, FirstName, EnrollmentDate);MERGE INTO Enrollment AS TargetUSING (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.EnrollmentIDWHEN NOT MATCHED BY TARGET THEN INSERT (Grade, CourseID, StudentID)VALUES (Grade, CourseID, StudentID);

重要的是要注意,部署後每次執行指令碼部署資料庫專案。因此,您需要編寫這個指令碼時仔細考慮你的要求。在某些情況下,您可能希望開始從一組已知的資料每次專案部署。在其他情況下,你可能不想以任何方式改變現有的資料。根據您的需求,您可以決定你是否需要部署後腳本或你需要包含在指令碼中。更多資訊填充您的資料庫指令碼部署後,看到包括SQL Server資料庫專案中的資料。

你現在有4 SQL指令碼檔案,但沒有實際的表。你準備部署資料庫專案localdb。在Visual Studio中,單擊開始按鈕(或F5)來構建和部署資料庫專案。檢查輸出選項卡來驗證構建和部署成功。

EF Database First:[1]開始使用EF6+MVC5

看到已經建立了新的資料庫,open SQL伺服器物件資源管理器,尋找專案的名稱正確的本地資料庫伺服器(在本例中(localdb)\ ProjectsV12)。

EF Database First:[1]開始使用EF6+MVC5

看到表填充資料,右鍵單擊一個表,並選擇檢視資料。

EF Database First:[1]開始使用EF6+MVC5

顯示一個表資料的可編輯檢視。

EF Database First:[1]開始使用EF6+MVC5

後記

現在您的資料庫設定和填充資料。在接下來的教程中,您將建立一個數據庫的web應用程式。

這篇文章最初創建於2014年1月31日

注意事項

成長中的Web前端工程師,願做一名有理想的技術。

相關問題答案