ASP.NET 5中使用Scaffolding实现CRUD操作

在现代Web开发中,快速开发和迭代是至关重要的。ASP.NET 5提供了一种称为Scaffolding的工具,它可以帮助开发者快速生成控制器和视图代码,从而实现CRUD(创建、读取、更新、删除)操作。本文将详细介绍如何在ASP.NET 5项目中使用Scaffolding来实现学生信息管理系统的CRUD操作。

前提条件

在开始之前,请确保已经安装了以下软件:

  • Visual Studio 2015:可以从下载。
  • ASP.NET5 / Core 1.0:从下载ASP.NET 5 RC。

使用代码

安装Visual Studio 2015和ASP.NET 5后,点击开始,然后程序,选择Visual Studio 2015,点击Visual Studio 2015。点击新建,然后项目,选择Web,选择ASP.NET Web应用程序。输入项目名称,然后点击确定。

创建数据库

将使用SQL Server数据库进行CRUD操作。首先,创建一个名为StudentsDB的数据库,以及一个名为StudentMaster的表。以下是创建数据库表和插入样本记录的SQL脚本。

USE MASTER; GO -- 1) 检查数据库是否存在。如果数据库存在,则删除并创建新数据库 IF EXISTS ( SELECT [name] FROM sys.databases WHERE [name] = 'StudentsDB' ) DROP DATABASE StudentsDB; GO CREATE DATABASE StudentsDB; GO USE StudentsDB; GO -- 1) //////////// StudentMasters IF EXISTS ( SELECT [name] FROM sys.tables WHERE [name] = 'StudentMasters' ) DROP TABLE StudentMasters; GO CREATE TABLE [dbo].[StudentMasters]( [StdID] INT IDENTITY PRIMARY KEY, [StdName] [varchar](100) NOT NULL, [Email] [varchar](100) NOT NULL, [Phone] [varchar](20) NOT NULL, [Address] [varchar](200) NOT NULL); -- 插入样本数据到Student Master表 INSERT INTO [StudentMasters] ([StdName],[Email],[Phone],[Address]) VALUES ( 'Shanu', 'syedshanumcain@gmail.com', '01030550007', 'Madurai,India' ); INSERT INTO [StudentMasters] ([StdName],[Email],[Phone],[Address]) VALUES ( 'Afraz', 'Afraz@afrazmail.com', '01030550006', 'Madurai,India' ); INSERT INTO [StudentMasters] ([StdName],[Email],[Phone],[Address]) VALUES ( 'Afreen', 'Afreen@afreenmail.com', '01030550005', 'Madurai,India' ); SELECT * FROM [StudentMasters];

修改默认连接字符串

要更改默认连接字符串以使用SQL连接,请打开“appsettings.json”文件。这是一个JSON文件,默认情况下看起来像下面这样。

默认连接字符串可能如下所示:

"ConnectionString": "Server=(localdb)\\mssqllocaldb;Database=aspnet5-MYASP.NET5DemoTest-afb3aac0-d181-4278-8436-cafeeb5a8dbf;Trusted_Connection=True;MultipleActiveResultSets=true"

现在,将其更改为SQL连接,如下所示:

"ConnectionString": "Server=YourSQLSERVERNAME;Database=StudentsDB;user id=SQLID;password=SQLPWD;Trusted_Connection=True;MultipleActiveResultSets=true;"

在这里,可以根据SQL连接进行更改,并保存“appsettings.json”文件。更新后的JSON文件将如下所示:

创建模型

可以通过在Model文件夹中添加一个新类文件来创建模型。右键单击Models文件夹,然后点击添加新项。选择类,并输入类名为“StudentMasters.cs”。

在这里,类将如下所示。将添加模型字段属性。

using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.ComponentModel.DataAnnotations; namespace MYASP.NET5DemoTest.Models { public class StudentMasters { [Key] public int StdID { get; set; } [Required] [Display(Name = "Name")] public string StdName { get; set; } [Required] [Display(Name = "Email")] public string Email { get; set; } [Required] [Display(Name = "Phone")] public string Phone { get; set; } public string Address { get; set; } } }

创建DbContext

现在,需要为Entity Framework创建一个DbContext。与Model类一样,向Models文件夹添加一个新类。

右键单击Models文件夹,然后点击添加新项。选择类,并输入类名为“StudentMastersAppContext.cs”。

在这里,首先需要添加Entity framework的头文件,使用Microsoft.Data.Entity;

接下来,继承DbContext到类,然后创建对象为DbContext,如下代码。

using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.Data.Entity; namespace MYASP.NET5DemoTest.Models { public class StudentMastersAppContext : DbContext { public DbSet Students { get; set; } } }

在Startup.cs中添加Entity Framework服务

接下来,需要在Startup.cs中添加Entity Framework服务。可以从解决方案资源管理器中找到Startup.cs文件。

打开Startup.cs文件,可以看到默认情况下ApplicationDBContext将被添加到ConfigureServices方法中。

现在,可以添加一个额外的DBContext为StudentMastersAppContext,如下代码:

public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddEntityFramework() .AddSqlServer() .AddDbContext(options => options.UseSqlServer (Configuration[ "Data:DefaultConnection:ConnectionString" ])); services.AddIdentity() .AddEntityFrameworkStores() .AddDefaultTokenProviders(); services.AddMvc(); // AddEntity Frameworkservices.AddEntityFramework() .AddSqlServer() .AddDbContext(options => options.UseSqlServer (Configuration[ "Data:DefaultConnection:ConnectionString" ])); // Add application services. services.AddTransient(); services.AddTransient(); }

添加Scaffolding

要添加Scaffolding,右键单击Controller文件夹,然后点击添加->新Scaffolding项。

选择MVC6 Controller with Views, 使用Entity Framework,然后点击添加。

现在,需要选择新创建的Model类和DataContext类。

Model Class: 在Model Class中,选择创建的Model类,即“StudentMasters”。

Data Context Class: 在Data Context中,选择创建的DBContext类,即“StudentMastersAppContext”。

是的,现在完成了。可以看到一个新的Controller类“StudentMastersController.cs”将在Controllers文件夹中创建。

可以看到这个“StudentMastersController.cs”控制器类将为Student Master CRUD操作自动生成代码。

在Views文件夹中,可以看到StudentMasters自动视图将为CRUD操作创建。在这里,不需要为CRUD操作编写任何代码。但如果需要,可以自定义这个控制器和视图。

添加学生菜单

在此之前,必须创建一个新的菜单以查看Students页面。

要添加菜单,点击Views文件夹->打开Shared文件夹,然后打开layout.cshtml页面。

在layout.cshtml文件中,可以找到以下代码:

可以删除About和Contact菜单,并添加学生菜单,使用控制器名称,如下代码:

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485