各位老铁们,大家好,今天由我来为大家分享ASP.NET Core MVC+Layui 使用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包管理器=程序包管理器控制台输入以下命令:
安装包MySql.Data.EntityFrameworkCore -版本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.1tabs=visual -studio#create-the-database)。
创建用户模型(UserInfo):
注意:属性的大小写与数据库中的表字段一致,Id属性成为对应数据库表的主键列。默认情况下,EF Core 将名为Id 或xxxID 的属性视为主键。有关更多信息,请参阅F 核心- 键。
///摘要///学生信息模型////summary public class UserInfo { ///摘要///学号////summary [Description(‘学号’)] public int? id { 得到;放; } ///摘要///学生姓名////summary [Description(‘学生姓名’)] public string UserName { get;放; } ///摘要///学生性别////summary [Description(‘学生性别’)] public string Sex { get;放; } ///摘要///学生联系电话////summary [Description(‘学生联系电话’)] public string Phone { get;放; } ///摘要///学生描述////summary [Description(‘学生描述’)] public string Description { get;放; } ///摘要///学生爱好////summary [Description(‘学生爱好’)] public string Hobby { get;放; } }
回到顶部
四、将数据库连接字符串添加到 appsettings.json:
{‘日志记录’: {‘LogLevel’: {‘默认’:’信息’,’Microsoft’:’警告’,’Microsoft.Hosting.Lifetime’:’信息’}},’AllowedHosts’:’* ‘, ‘ConnectionStrings’: { ‘MySqlConnection’:’数据源=127.0.0.1;用户ID=root;密码=root;DataBase=SchoolUserInfo_db’ }}
回到顶部
五、创建数据库上下文:
概述:
数据库上下文类是协调给定数据模型的EF Core 功能的主类。上下文源自Microsoft.EntityFrameworkCore.DbContext。上下文指定数据模型中包含哪些实体。在此项目中命名数据库上下文类SchoolUserInfoContext。
创建:
using Microsoft.EntityFrameworkCore;using Model;namespace Dal{ public class SchoolUserInfoContext : DbContext { public SchoolUserInfoContext(DbContextOptionsSchoolUserInfoContext options) : base(options) { } ///摘要///DbSet实体集属性对应数据库中的表(注意实体集名称必须与指示一致) ////summary public DbSetUserInfo UserInfos { get;放; } ///摘要///TODO: 创建数据库时,EF 将创建一系列具有默认表名和DbSet 属性的数据表。同名。集合属性的名称一般采用复数形式,但不同的开发者可能有不同的命名习惯。 ///开发者根据自己的情况决定是否使用复数形式。在定义DbSet 属性的代码后面添加以下代码,为DbContext 指定单数表名,以覆盖默认表名。 ////summary ///param name=’modelBuilder’/param protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.EntityUserInfo().ToTable(‘UserInfo’); } }}
回到顶部
六、将上下文添加到 Startup.cs 中的依赖项注入:
//此方法由运行时调用。使用此方法向容器添加服务。 public void ConfigureServices(IServiceCollection services) { //注入EF Core数据库上下文服务services.AddDbContextSchoolUserInfoContext(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 ///param name=’addUserInfo’/param ///返回/返回public async Taskbool Create(AddUserInfoViewModel addUserInfo) { try { var userInfo=new UserInfo() { 用户名=addUserInfo.UserName,性别=addUserInfo.Sex,爱好=addUserInfo.Hobby,电话=addUserInfo.Phone,描述=addUserInfo.Description }; _shoSchoolUserInfoContext.UserInfos.Add(userInfo);等待_shoSchoolUserInfoContext.SaveChangesAsync() ;返回真; } catch { 返回false; } }
Retrieve:
///摘要///获取用户信息////summary ///param name=’page’当前页码/param ///param name=’limit’显示条数/param ///param name=’userName’用户名/param ///返回/返回public async TaskPageSearchModel GetPageListData(int page=1, int limit=15, string userName=”) { try { ListUserInfo listData; } var 总计数=0; if (!string .IsNullOrWhiteSpace(userName)) { listData=wait _shoSchoolUserInfoContext.UserInfos.Where(x=x.UserName.Contains(userName)).OrderByDescending(x=x.Id).Skip((页- 1) * limit ).Take( limit).ToListAsync(); TotalCount=_shoSchoolUserInfoContext.UserInfos .Count(x=x.UserName.Contains(userName)); } else { listData=wait _shoSchoolUserInfoContext.UserInfos.OrderByDescending(x=x.Id).Skip((page – 1) * limit).Take(limit).ToListAsync();总计数=_shoSchoolUserInfoContext.UserInfos.Count(); } return new PageSearchModel() { ResultMsg=’成功’, Code=200, TotalCount=TotalCount, DataList=listData }; } catch (Exception e) { return new PageSearchModel() { Code=400, ResultMsg=e.Message }; } }
Update:
///摘要///学生信息修改////summary ///param name=’userInfo’/param ///返回/返回public async Taskbool Update(UserInfo userInfo) { try { _shoSchoolUserInfoContext.UserInfos.更新(用户信息);等待_shoSchoolUserInfoContext.SaveChangesAsync();返回真; } catch { 返回false; } }
Delete:
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/204718.html
用户评论
念安я
看起来挺实用的教程啊!我一直想学习 ASP.NET Core MVC,而且 Layui 的界面也很棒。现在刚好可以用这个方法来做一些数据库的 CRUD 操作,感觉能学到很多东西,期待后续文章指导!
有19位网友表示赞同!
怀念·最初
刚开始接触 EF Core,这篇博客介绍得还不错,通俗易懂。终于知道如何在 ASP.NET Core MVC 中用它连接 MySQL 进行了操作。不过我比较想了解如何处理复杂的数据关系,也许下次你能分享一下?
有18位网友表示赞同!
最迷人的危险
这篇文章很全面,代码讲解也很精细!虽然我是后端开发的经验丰富者,但学习新的框架和技术还是很有必要的。这篇博客能帮助我快速上手 ASP.NET Core MVC 和 EF Core 连接 MySQL 的流程,真是太棒了!
有17位网友表示赞同!
拽年很骚
MySQL 真的好用,效率很高,不过它在事务处理方面有点欠缺,希望可以关注一下这个问题,给个解决方案就好了。
有18位网友表示赞同!
回忆未来
感觉 Layui 整合确实能提升开发体验。这篇文章写得很不错,将 MVC 和 EF Core 做了很好的解释,非常适合想入门的人学习!
有9位网友表示赞同!
剑已封鞘
这篇博客太棒了!终于有个完整的指南可以参考!以前一直尝试用 ASP.NET Core MVC连接MySQL数据库,结果总是遇到各种问题。感谢作者的分享,让我解决了这些难题!
有16位网友表示赞同!
玩味
MySQL 虽然好用,但有时性能还是比不上其他关系型数据库,建议也介绍一下其他技术方案。
有14位网友表示赞同!
眼角有泪°
这个教程讲解得非常清晰!我已经成功地用它实现了基本的 CRUD 操作。下一步我想进一步学习如何使用 LINQ 来查询数据,期待作者能够提供更多高级的示例代码。
有11位网友表示赞同!
冷青裳
感觉这篇博客讲得太深入,很多地方还不太理解,可能需要重新学习一下 EF Core 的基础知识再来读一遍!
有12位网友表示赞同!
在哪跌倒こ就在哪躺下
ASP.NET Core MVC 和 Layui 的组合确实很强大,能快速开发出功能丰富的 WEB 应用。期待作者后续分享更多高级主题的内容,比如中间件的实现或 API 性能优化。
有11位网友表示赞同!
念初
学习EF Core 连接 MySQL的流程还是很容易理解的,这个教程写的很棒,我已经成功用到了它!
有15位网友表示赞同!
君临臣
我之前一直使用 ASP.NET MVC 做 Web 开发,现在想学习 ASP.NET Core MVC。这篇博客介绍得很详细,帮助我快速入门。感谢作者分享!
有16位网友表示赞同!
红尘滚滚
虽然这篇文章解释了CRUD操作的基础,但我更想知道如何使用EF Cored来优化数据库性能,比如缓存策略和 SQL 查询优化的技巧。
有20位网友表示赞同!
空巷
这篇文章确实很实用!我已经根据这篇博客的教程实现了部分简单的 CRUD 操作,下一步我计划尝试复杂的数据关系,希望能有更多相关的教程指导!
有14位网友表示赞同!
陌潇潇
ASP.NET Core MVC+ Layui 的组合真是太好了!这个框架灵活强大,开发效率很高。
有14位网友表示赞同!
自繩自縛
MySQL 相比其他数据库,学习难度比较低,所以这篇文章的介绍就显得更清晰了 ,新手小白也能轻松学习。
有5位网友表示赞同!
苏樱凉
希望作者可以更新一下博客内容,例如最新的 ASP.NET Core 版本和 EF Core 的新特性!
有6位网友表示赞同!
素衣青丝
这篇博客很适合 ASP.NET Core 初学者,我已经把我的笔记整理出来了,感觉很有帮助!
有6位网友表示赞同!