*本文根据MS官方示例流程进行一个入门练习,步骤和内容依照官方文档流程进行,基础环境为.netCore + VSCode,终端cmder ,示例项目为RazorPagesMovie
新建学习交流QQ群:1026682857 欢迎有兴趣的朋友 前来一起学习交流。
创建项目
创建WebApp项目
dotnet new webapp -o RazorPageWebDemo1
使用VSCode打开项目
code -r RazorPageWebDemo1
信任HTTPS开发证书
cd RazorPageWebDemo1
dotnet dev-certs https --trust
初始化环境验证
使用Ctrl + F5 允许程序
编写相关代码
添加Model
using System;
using System.ComponentModel.DataAnnotations;
namespace RazorPageWebDemo1.Models
{
public class Movie
{
private int _ID;
public int ID
{
get { return _ID; }
set { _ID = value; }
}
private string _Title;
public string Title
{
get { return _Title; }
set { _Title = value; }
}
[DataType(DataType.Date)]
private DateTime _ReleaseDate;
public DateTime ReleaseDate
{
get { return ReleaseDate; }
set { ReleaseDate = value; }
}
private string _Genre;
public string Genre
{
get { return _Genre; }
set { _Genre = value; }
}
private decimal _Price;
public decimal Price
{
get { return _Price; }
set { _Price = value; }
}
}
}
添加数据库类
- 添加数据库EFCore组件(本例使用mysql数据库)
//在命令行中输入
//添加mysql EF工具
dotnet add package Pomelo.EntityFrameworkCore.MySql
//添加基础架构包
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
*数据库包名称请具体参照 - https://docs.microsoft.com/zh-cn/ef/core/providers/?tabs=dotnet-core-cli
- 引入EFCore组件到Context文件
using Microsoft.EntityFrameworkCore;
- 在Startup.cs注册数据库上下文
//引入数据库文件
using Microsoft.EntityFrameworkCore;
using RazorPageWebDemo1.DataBase;
//注册上下文
services.AddDbContext<RazorPageContext>(options =>
options.UseMySql(Configuration.GetConnectionString("MovieContext"))
);
- 以上操作可以通过以下指令进行生成
dotnet aspnet-codegenerator razorpage -m Movie -dc MovieContext -udl -outDir Pages\Movies --referenceScriptLibraries
** dotnet aspnet-codegenerator razorpage 指令说明**
参数 | 描述 |
---|---|
-m | 模型名称 |
-dc | 要使用的dbcontext类 |
-udl | 使用默认布局 |
-outDir | 用于创建视图的相对输出文件夹路径 |
–referenceScriptLibraries | 向 编辑 和创建页面添加 _ValidationScriptsPartial |
- 开启数据库迁移
//使用ef启动数据库迁移
dotnet ef migrations add InitialCreate
//更新数据库
dotnet ef datebase update
*注意:ef操作貌似会编译程序本体(可能是局部的),在进行迁移和更新操作前因保证程序可正常编译 否则将会出现异常情况
//移除未同步的数据库迁移信息
dotnet ef migrations remove