ASP.NETCore打造一个简单的图书馆管理系统(一)基本模型以及数据库的建立NanaseRuri

《ProASP.NETMVC5》、《锋利的jQuery》

此系列皆使用VS2017+C#作为开发环境。如果有什么问题或者意见欢迎在留言区进行留言。

本章内容:对图书馆系统组成的简要分析。以及对域模型以及相应数据库的建立。

知识点:CodeFirst、EF基本使用方法、ASP.NETCore使用EFCore的配置方法。

一、对图书馆系统域模型的分析

一个图书馆系统需要有管理员、学生、书架以及书籍

域模型,即用来存储数据的模型。

在此域模型可以用以下结构创建:

二、项目结构

然后就可以开始建立该项目了:

Docker支持和身份验证在以后可以自行添加,在此就不使用相应的支架特性。

所谓支架特性就是VS2017能够自动为我们完成一系列的工作的特性,当然这部分工作也可以自行完成。

创建一个单元测试项目并引用LibraryDemo为以后的单元测试做准备。

然后正式开始图书馆项目的编写:

为了辨识,我创建了这样的文件夹结构,这里的Migrations文件夹由后面提到的EF自动创建。

三、建立域模型

学位枚举:

1publicenumDegrees2{3CollegeStudent,4Postgraduate,5DoctorateDegree6}

图书借阅状态枚举:

1publicenumBookState2{3///

4///可借阅5///6[Display(Name="正常")]7Normal,89///10///馆内阅览11///12[Display(Name="馆内阅览")]13Readonly,1415///16///已借出17///18[Display(Name="已借出")]19Borrowed,2021///22///被续借23///24[Display(Name="被续借")]25ReBorrowed,2627///28///被预约29///30[Display(Name="被预约")]31Appointed,3233[Display(Name="过期")]34Expired35}

学生信息:

在约定中,若不指定主键,则EF会使用(类名)+ID的方式指定或创建主键,在此使用[Key]指定主键,使用[Required]指定字段为必须,这种可以为属性添加在数据库中的约束或者在视图中的约束的修饰称为DataAnnotations。

借阅书籍信息:

书籍详细信息:

书架信息:

推荐书籍信息的结构与书籍详细信息一致:

四、创建DbContext

根据约定,创建DbContext类为EF提供建立的数据库的结构:

1publicclassStudentIdentityDbContext:IdentityDbContext2{3publicStudentIdentityDbContext(DbContextOptionsoptions):base(options)4{5}6}

每个DbContext类代表一个数据库,每个DbSet代表一张表。而构造函数参数以及其形式为ASP.NETCore的依赖注入的约定形式。

五、根据约定配置数据库,进行依赖注入

在appsettings.json中添加数据库连接字符串。

在Startup.cs中的ConfigureServices方法中对数据库进行配置:

六、数据库的迁移、创建及更新

然后在pm控制台中添加迁移:

添加迁移的语法为add-migration<迁移类名>-c<具体DbContext名>

分别执行以下代码:

1cdLibraryDemo2add-migrationAdmin-cLibraryDemo.Data.AdminDbContext3add-migrationLendingInfo-cLibraryDemo.Data.LendingInfoDbContext4add-migrationStudentIdentity-cLibraryDemo.Data.StudentIdentityDbContext

运行add-migration命令会创建Migrations文件夹以及相应的迁移快照,此处的AddSomeDetails和AddRequired为后来我自己添加的内容:

在创建迁移时,EF会自动为我们创建或更新对应DbContext的快照,即其中后缀为Snapshot的类。其中会包含当前对应的DbCOntext的结构,并会以代码保留相应的约束,如LendingInfoDbContextModelSnapshot类:

生成的迁移类LendingInfo和Account类则有两个方法——用于更新数据库的Up方法和用以回溯数据库的Down方法,可以在这两个方法或者在快照的BuildModel方法中使用FluentAPI对数据库做进一步的改动,并且通过对FluentAPI的使用可以使我们的类少用DataAnnotations以保证类的整洁。

需要注意的是,生成的迁移类中的Up和Down方法是根据生成迁移之前的数据库快照生成的,如我在之后为LendingInfoDbContext添加DbSet时,在以上的基础上运行了add-migrationAddRecommendedBook-cLibraryDemo.Data.LendingInfoDbContext,生成的Up方法只包括添加表RecommendedBooks的行为,而Down方法只包括删除表RecommendedBooks的行为。

随后在pm控制台执行以下创建或更新数据库:

1update-database-cLibraryDemo.Data.AdminDbContext2update-database-cLibraryDemo.Data.LendingInfoDbContext3update-database-cLibraryDemo.Data.StudentIdentityDbContext

最后在SQLserver对象管理器中可以看见创建的数据库以及对应的表:

至此域模型创建工作完成。

补充:

使用命令行对数据库进行迁移及更新有两种方式:

1dotnetefmigrationsmigrationName-cTargetContext2dotnetefdatabaseupdate-cTargetContext

1add-migrationmigrationName-cTargetContext2update-Database-cTargetContextwindows命令行命令不区分大小写,其中migrationName为迁移类名,最好提供有意义的命名;而TargetContext为目标DbContext类名,需要使用带有命名空间的完全命名。

THE END
1.ssm毕设图书馆信息管理系统程序+论文提高查询结果的准确性和相关性,确保读者能够快速找到所需图书的详细信息。 (四)图书借阅管理 借阅流程设计 建立一个简洁明了的借阅流程,读者在借阅图书时,系统能够快速验证读者身份、检查图书是否可借(如是否已被借出、是否为馆藏图书等)。 记录借阅时间、借阅期限等重要信息,为后续的管理和可能的逾期处理提供依据。https://blog.csdn.net/wuzhou201/article/details/144428369
2.图书管理系统的设计与实现(关于图书管理系统论文)文化摘要:随着信息技术的飞速发展,传统的图书管理方式难以满足日益增长的图书资源管理与读者服务需求。本文旨在探讨图书管理系统的设计与实现,通过分析图书馆管理业务流程和功能需求,综合运用数据库、软件工程等相关技术,构建一套高效、便捷、智能化的图书管理系统,以提升图书管理效率、优化读者借阅体验,并对系统的测试与应用效果http://www.tnsroot.cn/culture/202411/t20241123_57265.shtml
3.智慧图书馆管理系统建设总结建设方案与实施步骤在信息爆炸的时代,图书馆的作用不仅仅是提供纸质和电子书籍的储存和借阅服务,更是成为知识的交流与学习的场所。随着科技的发展,传统的图书馆管理方式已经无法满足现代读者的需求,因此,引入智能化的图书馆管理系统显得尤为重要。 一、引言 智能图书馆管理系统是一种利用现代信息技术对图书馆资源进行有效管理的一种方式。https://www.tianjuan.com.cn/zhtsgglxtjszjjsfayssbz.html
4.图书馆管理系统因此本人结合开入式图书馆的要求,对MS SQL Server2000数据库管理系统、SQL语言原理、Delphi应用程序设计,Delphi数据库技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的图书管理系统可以满足借阅者、图书馆https://www.fwsir.com/ligong/html/ligong_20070130182525_25748.html
5.图书管理系统论文12篇图书馆业务呈现逐步增加的趋势,现有的一图书馆管理系统也在不断增加一些独立的、新的业务系统,但这些业务系统尚不能很好的融入到已有的管理系统中,因此会造成信息孤岛现象的存在,不能很好的整合图书馆的服务项目和资源利用。如,现今各高校毕业论文的提交多通过图书馆系统完成,读者可以在个人图书馆进行论文的购买,却不https://www.yjbys.com/biyelunwen/fanwen/guanli/733539.html
6.图书管理系统图书管理系统是一门新学科它是一个由人、计算机等组成的能进行管理信息的收集、传递、加工、保存、维护和使用的系统。图书馆管理系统能实测国民经济和企业的各种运行情况;利用过去的数据预测未来;从企业全局出发辅助企业进行管理决策;利用信息控制企业的行为;帮助企业实现其规划目标。 http://www.360doc.com/content/20/1230/16/65238170_954392662.shtml
7.河套学院本科教学合格评估图书馆自评报告“学中做,做中学,学用结合”贯穿培训全过程。通过培训馆员的工作能力和水平不断提升,图书馆管理系统实现了从“奥龙系统”到“汇文系统”到“智慧图书馆服务平台(LSP)”三次更新换代。 近三年,我们先后派馆员参加各类学术会议11次,专业技能培训6次,邀请专家到馆培训学习5次,馆内自行组织培训5次,共培训馆员500余https://www.htxy.edu.cn/tsg/info/1010/1603.htm
8.图书借阅管理系统业务流程5篇在数字化时代,图书馆借阅管理系统已成为现代图书馆不可或缺的一部分。该系统不仅提高了图书借阅的效率,还为用户提供了便捷、快速的借阅体验。那么,图书借阅管理系统的业务流程是如何运作的呢?下面,我们将为您详 创建时间 2024-04-10 10:33:33 Word 文件格式 https://hsy.chanjet.com/wenku/wkc844936cfe5c.html
9.医院一卡通系统医院智能管理系统解决方案医院就餐卡医院食堂平台预留的扩展接口实现与数字化医院 建设中的其他MIS系统、OA系统,医院的HIS系统的融合。实现与人事管理系统的对接,实现医务员工按入职离职的方式管理,实现共享资源、生活设施的使用控制;实现与现有图书馆管理系统、电子阅览室等其它第三方子系统的对接连通,做到系统间无缝的紧耦合连接。 https://www.hbjingjiu.cn/doc_10614263.html
10.高中职图书馆的电子化经营课件.ppt主要问题如资金投入不足、管理机制不健全、人才培养不到位、数字资源缺乏、服务功能待升级等,制约了图书馆电子化的进一步深化。未来方向需要整体谋划,从硬件设施、软件系统、数字资源、服务功能等方面系统推进,促进图书馆电子化经营的全面发展。图书馆电子化经营的基础设施服务器基础设施建立高性能的服务器集群,确保系统的https://www.renrendoc.com/paper/368277533.html
11.武汉文献情报中心:创建一流文献情报体系优质服务知识创新工程特别是进入中科院知识创新试点后,按照“服务我院、面向社会、开放联合、服务一流”的指导思想,组织实施了学科发展战略——强化学科特色建设,以工程技术科学、长江流域资源生态环境为特色,进行信息资源的集成服务;信息技术提升战略——加强图书馆知识管理系统与网络条件建设,通过技术进步带动服务发展和质量提升,提高服务效率,https://www.cas.cn/zt/jzt/cxzt/cxdjb/whfy/200507/t20050704_2665333.shtml
12.图书管理系统开题报告使无论是管理人员或是普通用户通过登录,都可以进入书库管理系统的网页,通过输入关键词,责任者,题名,分类号等任意一个检索点,快速并准确地查询图书的信息。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆https://www.unjs.com/fanwenwang/kaitibaogao/20110821165045_683280.html
13.图书管理系统项目总结(通用20篇)总结是在一段时间内对学习和工作生活等表现加以总结和概括的一种书面材料,它可以帮助我们总结以往思想,发扬成绩,因此,让我们写一份总结吧。那么你知道总结如何写吗?下面是小编整理的图书管理系统项目总结,仅供参考,希望能够帮助到大家。 图书管理系统项目总结 篇1 https://mip.wenshubang.com/xuexizongjie/490427.html
14.中专中小学图书管理系统当在运行MSSQL数据库系统的服务器上,系统报“数据库的日志文件已满”的错误时,此时数据库系统已经不能再处理数据的更改,原因是MSSQL数据库安装的硬盘已经没有空余空间,此时必须清除数据库系统的日志文件(一般是图书管理系统的日志,其他系统的日志一般不大)。按如下处理(在数据库服务器上处理): http://www.hfjsj.com/server/help/question.asp
15.JAVA实战练习之图书管理系统实现流程java在还书时,读者首先将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息。太过于繁琐了!所以,我们需求设计一个图书管理系统来方便学生的借书和图书馆管理书籍。 项目说明: 本系统功能分为读者信息管理模块、图书信息管理模块、图书借阅管理模块、基础信息维护模块和用户管理模块。https://www.jb51.net/article/225929.htm
16.图书借阅管理系统有哪些APP推荐图书借阅管理系统有哪些下载图书的借阅对于很多用户而言是有需要的,而各个地方的图书馆也是需要有相关的管理系统来帮助自己去进行线上的记录,这样才能确保书籍不会丢失,下面就和大家说说图书借阅管理系统app有哪些,如果大家对于这方面较为的感兴趣,想要去解锁并体验它们的话,那么就一起来看看究竟是有哪几款合适吧。 https://www.wandoujia.com/bangdan/562179/