文章目录 项目地址 一、环境配置 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