在本文中,将探讨如何使用ASP.NET CoreMVC框架搭建一个项目,并通过Entity Framework Core进行数据库操作。将从创建一个新的项目开始,然后创建数据库,设置Entity Framework Core,并最终生成MVC的控制器和视图。
首先,需要创建一个新的ASP.NET CoreWeb应用程序。在Visual Studio中,选择“文件”>“新建”>“项目”,然后从左侧菜单中选择“.NET Core”>“ASP.NET Core Web应用程序”。选择ASP.NET Core的示例模板,然后点击“确定”。这将打开解决方案资源管理器中示例模板的初始视图。
接下来,需要创建一个新的数据库。使用SQL Server Management Studio (SSMS) 创建一个名为“PhoneBook”的数据库,并运行以下查询:
USE [PhoneBook]
GO
CREATE TABLE [dbo].[Contacts](
[ContactID] [int] IDENTITY(1,1) NOT NULL,
[FirstName] [nvarchar](50) NULL,
[LastName] [nvarchar](50) NULL,
[Phone] [nvarchar](50) NULL,
[Email] [nvarchar](50) NULL,
CONSTRAINT [PK_Contacts] PRIMARY KEY CLUSTERED
(
[ContactID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
这个查询创建了一个名为“Contacts”的表,用于存储联系人信息。
Entity Framework Core是一个跨平台的数据访问技术。需要在项目.json文件中添加以下依赖包:
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.1"
这些包允许Entity Framework Core与Microsoft SQL Server一起使用。
将使用命令行生成DbContext。在项目目录中,按住Shift键并右键单击以打开命令窗口。输入以下命令:
dotnet ef dbcontext scaffold "Server=DESKTOP-5B67SHH;Database=PhoneBook;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer --output-dir Models
执行此命令后,将在解决方案资源管理器中生成一个包含Context和Entities的模型文件夹。
在.NET Core中,可以使用脚手架工具生成控制器和视图。在项目.json文件中添加以下依赖包:
"Microsoft.VisualStudio.Web.CodeGenerators.Mvc": "1.0.0-preview2-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": "1.0.0-preview2-final"
保存文件后,包将自动恢复。现在可以进行下一步,生成控制器和视图。
右键单击控制器文件夹,选择“添加”>“新建脚手架项”。选择生成代码的方式,然后提供模型和上下文类,这些类将用于与数据库交互。选择视图选项,然后点击“添加”按钮执行操作。
也可以使用命令行生成控制器和视图。在项目文件夹中,按住Shift键并右键单击,然后命令窗口将出现。输入以下命令获取帮助信息:
dotnet aspnet-codegenerator --help
然后使用以下命令生成控制器和视图:
dotnet aspnet-codegenerator --project "E:\Documents\Article\ScaffoldingCoreMVC\CoreMVCScaffolding\src\CoreMVCScaffolding" controller --force --controllerName ContactsController --model CoreMVCScaffolding.Models.Contacts --dataContext CoreMVCScaffolding.Models.PhoneBookContext --relativeFolderPath Controllers --controllerNamespace CoreMVCScaffolding.Controllers --useDefaultLayout
执行此命令后,控制器和视图将成功生成。
最后,可以通过Ctrl+F5运行应用程序,或者使用以下命令运行:
dotnet run