首页 » SEO优化 » phpmysqlcrud技巧_ASPNET Core MVCLayui运用EF Core连接MySQL实行简单的CRUD操作

phpmysqlcrud技巧_ASPNET Core MVCLayui运用EF Core连接MySQL实行简单的CRUD操作

访客 2024-12-05 0

扫一扫用手机浏览

文章目录 [+]

文章正文:

回到顶部

phpmysqlcrud技巧_ASPNET Core MVCLayui运用EF Core连接MySQL实行简单的CRUD操作

序言:

  本章紧张通过一个完全的示例讲解ASP.NET Core MVC+EF Core对MySQL数据库进行大略的CRUD操作,希望能够为刚入门.NET Core的小伙伴们供应一个完全的参考实例。
关于ASP.NET Core MVC+EF操作MsSQL Server详情请参考官方文档(https://docs.microsoft.com/zh-cn/aspnet/core/data/ef-mvc/?view=aspnetcore-3.1)。

phpmysqlcrud技巧_ASPNET Core MVCLayui运用EF Core连接MySQL实行简单的CRUD操作
(图片来自网络侵删)

回到顶部

示例实现功能预览:

回到顶部

博客实例源码下载地址:

https://github.com/YSGStudyHards/ASP.NET-Core-MVC-Layui-EF-Core-CRUD_Sample

回到顶部

一、创建ASP.NET Core Web运用程序:

把稳,本章节紧张以APS.NET Core 3.1版本作为博客的样式实例!

回到顶部

二、添加EF Core NuGet包:

  若要在项目中利用EF Core操作MySQL数据库,须要安装相应的数据库驱动包。
本章教程紧张利用 MySQL数据库,以是我们须要安装干系驱动包MySql.Data.EntityFrameworkCore。

回到顶部

安装办法:点击工具=>NuGet包管理器=>程序包管理器掌握台输入以下命令:

Install-Package MySql.Data.EntityFrameworkCore -Version 8.0.20点击工具=>NuGet包管理器=>管理办理方案的NuGet程序包:

搜索:MySql.Data.EntityFrameworkCore 点击安装。

回到顶部

三、创建对应数据库表的实体模型:

  把稳该篇博客利用的是手动模型优先的办法进行数据库表字段与模型属性映射,当然如果大家以为这样子比较麻烦的话可以真正意义上的模型优先,直接创建模型在program.cs中配置创建对应模型的数据库逻辑代码即可无需手动创建数据库,可参考官网文档教程(https://docs.microsoft.com/zh-cn/aspnet/core/data/ef-rp/intro?view=aspnetcore-3.1&tabs=visual-studio#create-the-database)。

创建用户模型(UserInfo):

把稳:属性大小写和数据库中的表字段保持同等,Id 属性成为此类对应的数据库表的主键列。
默认情形下,EF Core 将名为 Id 或 xxxID 的属性视为主键。
有关详细信息,请参阅 F Core - 密钥。

/// <summary> /// 学生信息模型 /// </summary> public class UserInfo { /// <summary> /// 学生编号 /// </summary> [Description("学生编号")] public int? Id { get; set; } /// <summary> /// 学生姓名 /// </summary> [Description("学生姓名")] public string UserName { get; set; } /// <summary> /// 学生性别 /// </summary> [Description("学生性别")] public string Sex { get; set; } /// <summary> /// 学生联系电话 /// </summary> [Description("学生联系电话")] public string Phone { get; set; } /// <summary> /// 学生描述 /// </summary> [Description("学生描述")] public string Description { get; set; } /// <summary> /// 学生爱好 /// </summary> [Description("学生爱好")] public string Hobby { get; set; } }

回到顶部

四、将数据库连接字符串添加到 appsettings.json:

{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "", "ConnectionStrings": { "MySqlConnection":"Data Source=127.0.0.1;User ID=root;Password=root;DataBase=SchoolUserInfo_db" }}

回到顶部

五、创建数据库高下文:概述:

数据库高下文类是为给天命据模型折衷 EF Core 功能的主类。
高下文派生自 Microsoft.EntityFrameworkCore.DbContext。
高下文指天命据模型中包含哪些实体。
在此项目中将数据库高下文类命名为 SchoolUserInfoContext。

创建:

using Microsoft.EntityFrameworkCore;using Model;namespace Dal{ public class SchoolUserInfoContext : DbContext { public SchoolUserInfoContext(DbContextOptions<SchoolUserInfoContext> options) : base(options) { } /// <summary> /// DbSet实体集属性对应数据库中的表(把稳实体集名必须与表明同等) /// </summary> public DbSet<UserInfo> UserInfos { get; set; } /// <summary> /// TODO:当数据库创建完成后, EF 创建一系列数据表,表名默认和 DbSet 属性名相同。
凑集属性的名称一样平常利用复数形式,但不同的开拓职员的命名习气可能不一样, /// 开拓职员根据自己的情形确定是否利用复数形式。
在定义 DbSet 属性的代码之后,添加下面代码,对DbContext指定单数的表名来覆盖默认的表名。
/// </summary> /// <param name="modelBuilder"></param> protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<UserInfo>().ToTable("UserInfo"); } }}

回到顶部

六、将高下文添加到 Startup.cs 中的依赖项注入:

// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { //注入EF Core数据库高下文做事 services.AddDbContext<SchoolUserInfoContext>(options => options.UseMySQL(Configuration.GetConnectionString("MySqlConnection"))); services.AddControllersWithViews(); }

回到顶部

七:引入Layui样式和js:

前往官网下载Layui干系样式和js包,下载地址:https://www.layui.com/

Layui弹出层插件layer.js(有很多地方须要用到弹窗),下载地址:https://layer.layui.com/

将干系文件存放到wwwroot文件下:

将干系文件引入默认布局页面中:

回到顶部

八、 ASP.NET Core MVC 和 EF Core实现MySQL CRUD功能:

把稳在这里紧张展示的EF Core与数据库操作的部分代码,详细代码可下载实例源码查看。

Create:

/// <summary> /// 学生信息添加 /// </summary> /// <param name="addUserInfo"></param> /// <returns></returns> public async Task<bool> Create(AddUserInfoViewModel addUserInfo) { try { var userInfo=new UserInfo() { UserName = addUserInfo.UserName, Sex = addUserInfo.Sex, Hobby = addUserInfo.Hobby, Phone = addUserInfo.Phone, Description = addUserInfo.Description }; _shoSchoolUserInfoContext.UserInfos.Add(userInfo); await _shoSchoolUserInfoContext.SaveChangesAsync(); return true; } catch { return false; } }

Retrieve:

/// <summary> /// 获取用户信息 /// </summary> /// <param name="page">当前页码</param> /// <param name="limit">显示条数</param> /// <param name="userName">用户姓名</param> /// <returns></returns> public async Task<PageSearchModel> GetPageListData(int page = 1, int limit = 15, string userName = "") { try { List<UserInfo> listData; var totalCount = 0; if (!string.IsNullOrWhiteSpace(userName)) { listData = await _shoSchoolUserInfoContext.UserInfos.Where(x => x.UserName.Contains(userName)).OrderByDescending(x => x.Id).Skip((page - 1) limit).Take(limit).ToListAsync(); totalCount = _shoSchoolUserInfoContext.UserInfos .Count(x => x.UserName.Contains(userName)); } else { listData = await _shoSchoolUserInfoContext.UserInfos.OrderByDescending(x => x.Id).Skip((page - 1) limit).Take(limit).ToListAsync(); totalCount = _shoSchoolUserInfoContext.UserInfos.Count(); } return new PageSearchModel() { ResultMsg = "success", Code = 200, TotalCount = totalCount, DataList = listData }; } catch (Exception e) { return new PageSearchModel() { Code = 400, ResultMsg = e.Message }; } }

Update:

/// <summary> /// 学生信息修正 /// </summary> /// <param name="userInfo"></param> /// <returns></returns> public async Task<bool> Update(UserInfo userInfo) { try { _shoSchoolUserInfoContext.UserInfos.Update(userInfo); await _shoSchoolUserInfoContext.SaveChangesAsync(); return true; } catch { return false; } }

Delete:

/// <summary> /// 学生信息删除 /// </summary> /// <param name="id"></param> /// <returns></returns> public async Task<bool> Delete(int? id) { try { var searchUserInfo = await _shoSchoolUserInfoContext.UserInfos.FindAsync(id); if (searchUserInfo == null) { return false; } _shoSchoolUserInfoContext.UserInfos.Remove(searchUserInfo); await _shoSchoolUserInfoContext.SaveChangesAsync(); return true; } catch { return false; } }

作者:追逐光阴

原文:https://www.cnblogs.com/Can-daydayup/p/12593599.html

标签:

相关文章