文章目录
 - 项目地址
 - 一、环境配置
 - 1.1 安装EF core需要包
 - 1.2 配置数据库连接
 
 - 二、使用EF创建表
 -  
 - 三、添加第一个视图
 - 3.1整体流程梳理
 - 3.1 添加视图,并显示在web里
 
 - 四、使用EF增加Catogory数据,并且读取数据到页面
 -  
 - 五、增加Category按钮逻辑
 - 5.1 添加Create的Action,并且生成一个空的View
 - 5.2 在category页面添加Create按钮
 - 5.2 在Create的视图里创建表单
 
 
 
  
 
 
项目地址
 
 
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 建表详细流程
 
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; }   }
}
 
- 在
Data/ApplicationDBContexts.cs下面,导入Model,添加Category类 
 
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
 
三、添加第一个视图
 
3.1整体流程梳理
 
- Controller层创建一个Category的控制器
 - 然后在View层创建该控制器对应的视图
 
 
3.1 添加视图,并显示在web里
 
- 在Controller层,创建一个名为
CategoryController的空的mvc控制器 
 
using Microsoft.AspNetCore.Mvc;namespace MyMvcDemo.Controllers
{public class CategoryController : Controller{public IActionResult Index(){return View();}}
}
 
- 在View层,创建该控制器对应的视图
Category/index.cshtml 
 
<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 : DbContext{public ApplicationDBContext(DbContextOptions<ApplicationDBContext> options) : base(options){}public DbSet<Category> Categories { get; set; }protected override void OnModelCreating(ModelBuilder modelBuilder){modelBuilder.Entity<Category>().HasData(new Category { CategoryId = 1, Name = "Fruit", DisplayOrder = 1 },new Category { CategoryId = 2, Name = "Vegetable", DisplayOrder = 2 },new Category { CategoryId = 3, Name = "Meat", DisplayOrder