基于.Net Core Web MVC的图书查询系统——第四章,添加模型并使用EF Core生成基架自动生成控制器和视图
基于.Net Core Web MVC的图书查询系统
- 第一章,.Net Core Web MVC配置身份验证和注册登录功能并修改默认页面
- 第二章,.Net Core Web MVC配置邮件发送服务
- 第三章,在.Net Core Web MVC中使用Sqlite数据库
- 第四章,添加模型并使用EF Core生成基架&自动生成控制器和视图
- 第五章,条件查询的设计与实现
第四章,添加模型并使用EF Core生成基架
- 基于.Net Core Web MVC的图书查询系统
- 前言
- 一、EF Core是什么?
- 二、添加图书模型
- 三、使用EF Core生成基架
- 四、同上述方法添加其他模型
- 五、更新数据库
- 六、在主页添加新页面的入口链接
- 总结
前言
EF Core 可真是一个神奇的工具,它既可以通过模型来建立数据库,并生成简单的增删改查页面和控制器,也可以通过数据库来建立模型。重要的是不仅仅局限于一种数据库,应用范围广。
这篇文章中,将添加主要模型并通过EF Core来生成这些模型的控制器和页面。
一、EF Core是什么?
EF Core 是一个 O/RM(Object Relational Mapping)对象关系映射 框架,它也提供了对数据增删改查的基础封装,提供了Code First 的开发,它也有批量增删的功能扩展;
作者把它理解为一种提高开发效率的工具,可以通过它快速生成增删改查功能,自己再在其基础上修改能省很多事儿。
二、添加图书模型
在Models文件夹下新建Book.cs文件并使用以下代码更新文件:
using System;
using System.ComponentModel.DataAnnotations;namespace 图书查询系统.Models
{public enum bookType{哲学,政治,历史,地理,艺术,天文,文学,交通运输,生物医疗,农业,自然科学}public class Book{//主键,如果需要自定义主键可以像这样//[Key]//public Guid BookID { get; set; }public int ID { get; set; }[RegularExpression(@"^[^\s]*$", ErrorMessage = "请输入汉字、字母或数字")]//通过正则表达式设置数据合法性的规则,如果验证不合法就提示后面的ErrorMessage[StringLength(20, MinimumLength = 1, ErrorMessage = "{0} 长度必须在 {2} 到 {1} 之间.")][Display(Name = "书名")]//设置模型属性的显示名称public string BookName { get; set; }[RegularExpression(@"^[^\s]*$", ErrorMessage = "请输入汉字、字母或数字")][StringLength(20, MinimumLength = 1, ErrorMessage = "{0} 长度必须在 {2} 到 {1} 之间.")][Display(Name = "作者")]public string Author { get; set; }[Display(Name = "图书类别")]public bookType BookType { get; set; }[DataType(DataType.Date)][Display(Name = "出版日期")]public DateTime DateOfPublication { get; set; }[RegularExpression(@"^[^\s]*$", ErrorMessage = "请输入汉字、字母或数字")][StringLength(20, ErrorMessage = "{0} 长度不得大于 {1}.")][Display(Name = "出版社")]public string Press { get; set; }[RegularExpression(@"^[^\s]*$", ErrorMessage = "请输入汉字、字母或数字")][StringLength(300, MinimumLength = 10, ErrorMessage = "{0} 长度必须在 {2} 到 {1} 之间.")][Display(Name = "简介")]public string Introduction { get; set; }}
}
三、使用EF Core生成基架
在“解决方案资源管理器”中,右键单击 Controllers 文件夹,然后选择“添加”>“新搭建基架的项目”。
在“添加基架”对话框中:
选择 视图使用 Entity Framework 的 MVC 控制器。
单击 添加。 随即将显示“使用 Entity Framework 添加包含视图的 MVC 控制器”对话框:
点击添加,等待生成控制器和razor页面,如果生成失败可以检查一下是不是Nuge包的版本不一致造成的。
生成成功后可以看到多出了模型对应的控制器和页面
Create是创建图书,Delete是删除指定图书,Details是查看指定图书的详细信息,Edit是修改指定图书,Index是查看所有图书的视图,相当于一个列表。这样相当于增删改查的功能都给我们生成出来了。
四、同上述方法添加其他模型
作者另外添加了公告功能、收藏功能、还有一个简单的权限管理功能。前两个功能也是像上面一样添加完模型后生成基架,其中权限管理功能改动较大,不适合使用基架。会在后续章节中详细写权限管理功能。
附三个模型代码,可根据自己的需要来修改。
公告的模型
using System;
using System.ComponentModel.DataAnnotations;namespace 图书查询系统.Models
{//公告类public class Announcement{public int ID { get; set; }[Required][StringLength(30, MinimumLength = 2)][Display(Name = "公告标题")]public string Name { get; set; }//公告标题[DataType(DataType.Date)][Display(Name = "发布时间")]public DateTime Time { get; set; }//发布时间[Display(Name = "公告内容")]public string Content { get; set; }//公告内容}
}
收藏功能的模型
using System;
using System.ComponentModel.DataAnnotations;namespace 图书查询系统.Models
{public class Collection{[Key]public Guid ID { get; set; }//主键public string UserID { get; set; }//使用的用户类是IdentityUser,这里对应的是IdentityUser中的主键public int CaseID { get; set; }//图书类的主键}
}
权限管理功能的模型
using Microsoft.AspNetCore.Identity;namespace 图书查询系统.Models
{public class UserWithRoles : IdentityUser{public string RoleType { get; set; }}public class ManageUsersViewModel{public IdentityUser[] Root { get; set; }public IdentityUser[] Admin { get; set; }public IdentityUser[] Everyone { get; set; }}
}
五、更新数据库
从“工具”菜单中,选择“NuGet 包管理器”>“包管理器控制台”(PMC)。
在 PMC 中,输入以下命令:(如果已经有迁移记录需要先将旧的迁移记录删掉,第一条指令才不会执行失败,要不然将InitialCreate改个其他名字也可以~)
Add-Migration InitialCreate
Update-Database
六、在主页添加新页面的入口链接
在Views/Home/Index.cshtml文件中添加一个a标签就可以了
<a class="navbar-brand" asp-area="" asp-controller="Books" asp-action="Index">图书查询系统</a>
如图:
这样就可以访问到刚才添加的内容了。
生成后的页面可能会出现下面这种情况~
我们会发现图书类别选择不了数据,这是由于视图没有绑定枚举类造成的,下面是关于select标签绑定枚举类型的方法
总结
本文主要记录了通过模型快速添加基架,自动生成相应的控制器和页面的内容。在后续章节中将会先实现图书检索功能再实现收藏功能。
以上就是关于.Net Core Web MVC中使用Sqlite数据库的内容了。如果您觉得这篇文章对您有帮助,还请不要吝啬您手里的赞。同样,如果您觉得这篇文章有误,请您指正批评,作者将感激不尽!
基于.Net Core Web MVC的图书查询系统——第四章,添加模型并使用EF Core生成基架自动生成控制器和视图相关推荐
- Asp.Net Core 6.0 Mvc入门 图书查询系统 附带源码下载
Asp.Net Core 6.0 MVC 入门 简介 目标 第一章 创建Asp.Net Core Web应用 第二章 从Model开始 第三章 Model之后皆基架 第四章 运行应用 第五章 数据搜索 ...
- ASP .NET Core Web MVC系列教程二:添加控制器
系列文章目录:ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序 上一个教程:ASP .NET Core Web MVC系列教程一:创建一个W ...
- ASP .NET Core Web MVC系列教程三:添加视图
系列文章目录:ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序 上一个教程:ASP .NET Core Web MVC系列教程二:添加控制器 ...
- ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序
本系列教程翻译自微软官方教程,官方教程地址:Get started with ASP.NET Core MVC | Microsoft Docs 本系列教程介绍了构建MVC Web应用程序的基础知识. ...
- ASP .NET Core Web MVC系列教程四:添加模型
系列文章目录:ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序 上一个教程:ASP .NET Core Web MVC系列教程三:添加视图 ...
- ASP .NET Core Web MVC系列教程一:创建一个Web应用程序
系列文章目录:ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序 从Visual Studio中选择" 创建新项目". 选 ...
- asp.net core web mvc之异常
与web api类似,asp.net core web mvc模板也是利用ExceptionHandler来处理错误,在starup的Configure配置数据发生时导向的/home/error pu ...
- android模板 警务,基于Android移动手机平台的警务查询系统
摘要: 移动计算作为一种新的计算模式改变了人们使用信息的方式,使人们使用信息不再受时间和地点的限制.随着通讯技术的迅猛发展,手机.PDA等移动数字终端设备已经大量普及使用,在移动中获取信息的需求也越来 ...
- 基于区块链的学生课程成绩查询系统
基于区块链的学生课程成绩查询系统 [摘 要]传统成绩管理系统存在数据易窜改的问题.本文根据区块链不可窜改的原理设 计并实现课程成绩查询系统.系统基于以太坊技术开发,采用 Node.js 作为服务器后端 ...
最新文章
- dubbo启动顺序问题
- openstack 云主机关机,自动running
- argparser_Java命令行界面(第22部分):argparser
- extundelete反删除总结
- 5 -- Hibernate的基本用法 --5 3 改变持久对象状态的方法
- 华为nova 8 Pro王者荣耀定制版曝光:内置小鲁班定制主题 电池盖镭雕小鲁班
- Java代码发送POST请求
- SuperSocket架构设计示意图【转】
- 【RecSys】推荐系统和计算广告经典算法论文及实现总结
- 孪生网络图像相似度_Siamese network 孪生神经网络一个简单神奇的结构
- 什么是网络处理器?网络处理器有哪些应用场景?
- 预约移民后服务器不显示,玩家预约凌烟阁服务器瞬间成功,这算不算被几率
- Java中三元运算符
- 【书影观后感 五】你的名字
- dul恢复oracle数据,学习笔记:Oracle dul数据挖掘 使用DUL数据恢复软件恢复分区表中...
- 【免费资源必备】LingoDeer,扫描全能王直装版等五款APP让你享受上千个免费资源
- java 分析内存_Java 内存查看与分析
- Mycat 读写分离、主从切换、分库分表的操作记录
- python异常-TypeError: ‘tuple‘ object is not callable.当不同的环境下同一个语句运行结果不同时,不如重启程序、更改不相关变量试试
- 情商高的人的特点以及提高情商要做的事——《应该给孩子的50堂情商课》读后有感