基于.Net Core Web MVC的图书查询系统——第三章,在.Net Core Web MVC中使用Sqlite数据库

基于.Net Core Web MVC的图书查询系统



前言

在我们新建一个.Net Core Web MVC项目时,项目中其实已经为我们配置好了SQL Server数据库,我们实际上是不需要多此一举的。

但是由于作者只是想用.Net Core制作一个网站来练练手,数据量也没有那么大,并不需要如此庞大的关系型数据库,况且SQL Server是存放在本地或服务器上的,并不利于将项目发给别人学习交流。

因此在我的网站中,我使用了Sqlite数据库,以便将数据库导入到项目中,也方便将项目外发,直接打开就能用。


一、Sqlite概述

SQLite 是一个自包含、高可靠性、嵌入式、功能完整、公共域的 SQL 数据库引擎。 SQLite 是世界上使用最多的数据库引擎。

SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。

按照作者的理解,Sqlite是一款文件型的数据库,就相当于在文件操作的基础上对其封装一个库,使其具有数据库的功能,因此Sqlite更适合数据量比较小的软件使用。由于配置简单,不需要服务器,正适合我拿来练手项目使用。


这里放上sqlite官网和sqlite数据库可视化管理工具,需要自取
sqlite官网
Sqlite数据库可视化管理工具

二、添加 NuGet 包

从“项目”菜单中选择“管理 NuGet 程序包” 。
在右上方的“搜索”字段中,输入 Microsoft.EntityFrameworkCore.SQLite 并按回车键进行搜索。 搜索匹配的 NuGet 程序包,并按“安装”按钮。
在这里插入图片描述

三、添加数据库上下文

在该项目中,我们直接使用数据库上下文(协调模型的 EF Core 功能,包括创建、读取、更新和删除)来操作数据库,省的直接自己封装一个数据库操作类了,一般建立.Net Core MVC项目就会有这个类的
在这里插入图片描述
如果没有的话
创建一个“Data”文件夹。
使用以下代码添加 Data/ApplicationDbContext.cs 文件:

using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Text;

namespace WebApplication1.Data
{
    public class ApplicationDbContext : IdentityDbContext
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {
        }
    }
}

四、注册数据库上下文

将Startup文件中ConfigureServices方法中

services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlServer(
                    Configuration.GetConnectionString("DefaultConnection")));

以上代码段改成

services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlite(
                    Configuration.GetConnectionString("DefaultConnection")));

五、添加数据库连接字符串

在appsettings.json文件中,将默认的数据库连接字符串改成我们sqlite数据库的连接字符串,由于我是数据库文件放在项目中的,所以我这里直接让它等于一个文件名就可以了,这个名称也是可以自定义的。
在这里插入图片描述

六、为数据库添加初始数据

有时我们需要在数据库中添加初始数据,又称设定数据库种子。如果不需要添加初始数据则可以跳过此项。

将下面这段代码添加到Data/ApplicationDbContext.cs 文件:

        //添加种子数据
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);//没有主键的话生成主键
            //一个模型类对应一张表,这里检测这个表是否有这条数据,如果没有则向数据库中添加这条数据
            modelBuilder.Entity<IdentityUser/*你的模型类*/>().HasData(
                new IdentityUser
                {//模型类的属性,一个属性对应一列
                    Id = "0",
                    UserName = "jiumu@jumul.cn",
                    Email = "jiumu@jumul.cn",
                    NormalizedUserName = "JIUMU@JUMUL.CN",
                    NormalizedEmail = "JIUMU@JUMUL.CN",
                    EmailConfirmed = true,
                    LockoutEnabled = true,
                    PasswordHash = "AQAAAAEAACcQAAAAEFX6wDQw9a4DGRgn1K8SM2pNFkVmsEA2EuNRUvPW1mwF6c07G+rThK4Wo7n/t5zZgw=="
                }
            );
        }

如图所示
在这里插入图片描述

七、使用EF Core迁移功能来生成数据库

从“工具”菜单中,选择“NuGet 包管理器”>“包管理器控制台”(PMC)。
在 PMC 中,输入以下命令:

Add-Migration InitialCreate
Update-Database

其中第一条指令是添加一条迁移记录,后面的参数是迁移记录的名称,这个是可以自己修改的,可以有多条迁移记录,但是多条记录名称不能相同,否则这条指令会执行失败。

第二条指令是根据迁移记录应用数据库,这里要注意的是这两条指令一定要保证Nuget包的版本是一致的,否则很容易因为版本问题导致指令执行报错。

如果因为版本问题报错了,可以将第一条指令生成的Migrations文件夹删掉,这个文件夹是自动生成的迁移记录。删掉后将Nuget包升级成一致版本,重新执行第一条指令,在执行第二条指令

执行成功结果如图
在这里插入图片描述


总结

这样就可以在项目中使用sqlite数据库了。在下一章中,将通过EF Core来添加对模型的操作,实现对模型数据的操作。

以上就是关于.Net Core Web MVC中使用Sqlite数据库的内容了。如果您觉得这篇文章对您有帮助,还请不要吝啬您手里的赞。同样,如果您觉得这篇文章有误,请您指正批评,作者将感激不尽!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jumul

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值