项目地址
https://www.bilibili.com/video/BV1iK4y1q7TC?spm_id_from=333.788.player.switch&vd_source=791e6deaa9c8a56b1f845a0bc1431b71&p=15
.net core mvc
一、环境配置
1.1 安装EF core需要包
1.2 配置数据库连接
- 在
appsettings.json
下配置链接字符串
"ConnectionStrings": {
"DefaultConnection": "Server=.;Database=netdemo;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True;"
}
- 在Nuget的控制台,输入
update-database
,链接成功则数据库有EFcore的内容
SELECT TOP (1000) [MigrationId]
,[ProductVersion]
FROM [netdemo].[dbo].[__EFMigrationsHistory]
二、使用EF创建表
2.1 整体流程梳理
- Models层,创建Category实体类
- 创建Data文件夹,并创建EF Core 数据上下文类,用于数据交互
- 在EF Core 数据上下文类里,引入并添加我们需要的类
- NuGet控制台,执行migration语句
- 执行更新数据库语句
2.1 建表详细流程
2.1.1 创建一个Category的Model
Models/Category.cs
创建一个类
using System.ComponentModel.DataAnnotations;
namespace MyMvcDemo.Models
{
public class Category
{
public int CategoryId {
get; set; }
public string Name {
get; set; }
public int DisplayOrder {
get; set; }
}
}
2.1.2 创建Category的EF实体
- 在
Data/ApplicationDBContexts.cs
下面,导入Model,添加Category类的EF实体
using Microsoft.EntityFrameworkCore;
using MyMvcDemo.Models;
namespace MyMvcDemo.Data
{
public class ApplicationDBContext : DbContext
{
public ApplicationDBContext(DbContextOptions<ApplicationDBContext> options) : base(options)
{
}
public DbSet<Category> Categories {
get; set; }
}
}
- NuGet的控制台输入,执行成功后,会生成一个Migration文件夹和里面的snapshort,
add-migration AddCategoryTableToDb
- 再次执行,EF会识别出来Categroies的实体没有,自动创建表
update-database
三、添加Category页面的视图
3.1整体流程梳理
- Controller层创建一个Category的控制器
- 然后在View层创建该控制器对应的视图
3.2 添加Controller
- 在Controller层,创建一个名为
CategoryController
的空的mvc控制器
using Microsoft.AspNetCore.Mvc;
namespace MyMvcDemo.Controllers
{
public class CategoryController : Controller
{
public IActionResult Index()
{
return View();
}
}
}
3.3 添加View 视图
- 在View层,创建该控制器对应的视图
Category/index.cshtml
,刚好对应的是IAcation的函数名
<h1>Category List</h1>
- 浏览器通过
locolhost:category/index
就可以访问到view里的视图
四、使用EF增加Catogory数据,并且读取数据到页面
4.1整体流程梳理
- 在EF的数据上下文中直接添加数据
- 在NuGet里对数据进行写入
- Controller层使用依赖注入,读取Category表的数据
- 将数据传递给View层
- 在html页面里,使用模板语法读取Controller层传递的数据
4.2 实现
- EF上下文中,添加需要写入数据库的实体类
Data/ApplicationDBContext.cs
namespace MyMvcDemo.Data
{
public class ApplicationDBContext : Db