iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >ASP.NET Core怎么使用EF SQLite对数据库增删改查
  • 419
分享到

ASP.NET Core怎么使用EF SQLite对数据库增删改查

2023-06-26 05:06:49 419人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关asp.net Core怎么使用EF sqlite对数据库增删改查,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1 新建ASP.net cor

这篇文章将为大家详细讲解有关asp.net Core怎么使用EF sqlite对数据库增删改查,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

1 新建ASP.net core mvc 应用

1.1 新建MVC应用

打开Visual Studio 2017,新建 ASP.net WEB应用程序,选择MVC(模型视图控制器)。

ASP.NET Core怎么使用EF SQLite对数据库增删改查

ASP.NET Core怎么使用EF SQLite对数据库增删改查

1.2 引入NuGet 包

需要 引入

  • microsoft.EntityFrameworkCore

  • Microsoft.EntityFrameworkCore.Sqlite

引入教程

点击

依赖项

    -右键

      --管理NuGet 程序包

ASP.NET Core怎么使用EF SQLite对数据库增删改查

轮流输入并安装microsoft.EntityFrameworkCore 、Microsoft.EntityFrameworkCore.Sqlite,下面附过程

注:

版本请选择与自己 ASP.net core 版本接近的。

笔者版本 ASP.Net Core 版本为 2.1 ,选择的 NuGet 包版本为 2.11。

如果你的 .Net Core 是最新的,那么 NuGet 也选最新的即可。

如果你选择版本后,发现报错,可以再进入 NuGet 重新删除安装。

出现更新提示千万不用更新。

ASP.NET Core怎么使用EF SQLite对数据库增删改查

ASP.NET Core怎么使用EF SQLite对数据库增删改查

2 新建模型和上下文

这一步建立模型和上下文,后面将会根据这里的代码生成数据库和数据库表!

需要建立一个上下文类和模型类,把模型类包含在上下文类中,上下文类中包含进来的模型类,将会生成对应的数据库表。

下面这代码不用自己操作,只需要看就行。(注意注释部分)

using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using Microsoft.EntityFrameworkCore;namespace WebApplication1.Models{    public class SqlContext:DbContext    {        public SqlContext(DbContextOptions<SqlContext> Options):base(Options)        {        }        public DbSet<A> A { get; set; } //在数据库中生成数据表A    }    public class A    {        public int ID { get; set; }          }    public class B    {        public int ID { get; set; }    }}

上面代码,有三个类,

  • 其中  SqlContext 类是上下文类,

  • A、B类为模型类,

  • 但是,只让A生成数据库表,而B不会生成数据库表。

  • A、B都是模型类,因为可以被生成数据库表,所以A也可以叫实体类,B因为没有 DbSet<B> ,所以B叫模型类,不叫实体类。

  • A类将会生成一个真实的数据库中的表,有对应关系,所以,他是“实体类”。

  • B类没有对应的存在,只是模型,没有实际存在的对象,所以只是叫“模型类”。

2.1 新建模型类

上面代码把模型类、上下文类放到同一个文件 SqlContext.cs,这样可读性不太好。

因为一个模型类,代表一个数据表,上下文类相当于一个配置类,一个数据库有几十个表,每个表有几个列,这样会使文件内容过于复杂。

我们可以降低耦合,每个类文件只存在一个类,每个类代表一个表,你要创建几个表,就对应写几个类。

实际操作

在 Models 文件夹中

  • 新建一个类Users.cs

  • 在类中直接写代码

        public int ID { get; set; }       //主键        public string Name { get; set; }  //用户名称        public int Age { get; set; }    //用户年龄        public int Number { get; set; } //用户手机号码

如图

ASP.NET Core怎么使用EF SQLite对数据库增删改查

注:

一个模型类 对应 一个数据表(Table)

模型类的一个属性 对应一个列。

模型类只应出现属性,不应该出现方法等。

笔者这里只写一个表,如果你想要多个表,可以新建其它类,然后在上下文类中加入。

2.2 新建上下文

上面已经建立模型类,模型类将成为数据表(Table)本身。然而他们不能直接对应生成数据表,需要上下文来对模型类映射成数据表,不然他们只是普通的类。

在 Models 目录新建 类MyContext.cs

ASP.NET Core怎么使用EF SQLite对数据库增删改查

在头部引入 EF(EntityFrameworkCore )

using Microsoft.EntityFrameworkCore;

重写 MyContext 类

步骤1
  public class MyContext改成    public class MyContext:DbContext    //表示该类为上下文类,数据库名称为 My,类名称为什么,数据库名就为什么
步骤2

在MyContext类中写一个构造函数

        public MyContext(DbContextOptions<MyContext> options) : base(options)        {        }

这个构造函数涉及到依赖注入,这里不再赘述,只需要知道这个构造函数能够配置相关设置。

这里的构造函数内容为空,因为暂时没有什么要配置的。

步骤3

在构造函数下面加上代码,对模型类进行映射。

        public DbSet<Users> Uaa { get; set; }//Dbset  映射成一个表//Dbset<Users>   里面的Users即为使用的模型类//Uaa      Users 类在数据库生成的名称

注:

上面代码表示以模型类Users为基础,在数据库中生成 名为 Uaa 的 表。

一个上下文对应 一个 数据库,上下文类 MyContext,Context 前面的部分将成为数据库名称。例如 asdwadaaContext,将生成数据库asdwadaa。

一个模型类 对应 一个数据表(Table)

完整代码如下

using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using Microsoft.EntityFrameworkCore;namespace WebApplication1.Models{    public class MyContext:DbContext    {        public MyContext(DbContextOptions<MyContext> options) : base(options)        {        }        public DbSet<Users> Uaa { get; set; }    }}

生成的效果图预览

ASP.NET Core怎么使用EF SQLite对数据库增删改查

3 配置服务

为了让应用生成数据库、使用到这个数据库,需要在Startup.cs 增加代码

在头部引入三个 库

using WebApplication1.Models;  //可能命名不同using Microsoft.EntityFrameworkCore;using Microsoft.EntityFrameworkCore.Sqlite;

然后为 应用注入服务,有以下方式

(后面再解释作用,现在先了解,不用加)

1 直接写字符串

在Startup.cs 增加代码

            string connecttext = "Filename=F:\\MY.DB";            services.ADDDbContext<MyContext>(options=>options.UseSqlite(connecttext));

2 使用JSON

在appsettings.json 文件加入内容(注释部分)

{  "Logging": {    "LogLevel": {      "Default": "Warning"    }  },  "AllowedHosts": "*",  //注释部分  "ConnectionStrings": {    "MyContext": "Filename=F:\\MY.DB"    //注释部分  }}

然后 在 Startup.cs 增加代码

            string connecttext = Configuration.GetConnectionString("MyContext");            services.AddDbContext<MyContext>(options=>options.UseSqlite(connecttext));

注:

以上两种方式,connecttext 变量的作用是获取数据库连接字符串,此变量没有特殊意义,只是为了增加可读性。

SQLite的连接字符串,只需要写 "Filename=[绝对路径]"

services.AddDbContext(options=>options.UseSqlite(“连接字符串”));

表示

    向应用注入DbContext (数据库上下文服务),注入的上下文类型为 MyContext>

(options=>options.UseSqlite(“连接字符串”)

是 lambda 表达式,表示使用 sqlite 数据库,参数是连接字符串。Lambda 表达式属于C# 基础知识,不会的话,先记着,以后查找资料。

来实际操作

请使用复制上面 方式一 的代码,然后在Startup.cs类 --ConfigureServices 方法里加入

ASP.NET Core怎么使用EF SQLite对数据库增删改查

直接复制下面代码覆盖ConfigureServerices

public void ConfigureServices(IServiceCollection services)        {            services.Configure<CookiePolicyOptions>(options =>            {                // This lambda determines whether user consent for non-essential cookies is needed for a given request.                options.CheckConsentNeeded = context => true;                options.MinimumSameSitePolicy = SameSiteMode.None;            });            string connecttext = "Filename=F:\\MY.DB";            services.AddDbContext<MyContext>(options => options.UseSqlite(connecttext));            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);        }

注:

SQLite 数据库文件,可以不加后缀名,但加上后缀名会便于别人识别这是一个数据库的文件,后缀名不限,可以为 .DB、.SQLite、SQLite3等。

4 生成数据库

点击

  工具

    -NuGet 包管理器

      --程序包管理器控制台

ASP.NET Core怎么使用EF SQLite对数据库增删改查

输入

Add-Migration InitialCreate

等待结束后在输入

Update-Database

如图

ASP.NET Core怎么使用EF SQLite对数据库增删改查

然后你会发现解决方案管理器,多了Migrations 目录和一些文件,F:\ 目录也多了一个MY.DB文件

5 使用工具管理SQLite文件

生成数据库文件后,会发现无法直接打开的,即使是 VS2017 也不行。

这时可以使用工具SQLite Expert Professional ,来对 SQLIte 数据库进行管理。

下载地址https://www.yisu.com/database/265.html

软件介绍Https://www.yisu.com/database/265.html

安装好软件后,即可打开数据库文件。

软件打开数据库文件教程:

ASP.NET Core怎么使用EF SQLite对数据库增删改查

ASP.NET Core怎么使用EF SQLite对数据库增删改查

ASP.NET Core怎么使用EF SQLite对数据库增删改查

6 生成增删查改基架

这时候可以在程序对数据库进行操作,对于如何使用,最好去看微软的Entity Framework文档。

笔者这里给出一个简单的示例。

步骤 1

在 Controller 目录,右键点击 添加 -- 新建基架的项目

ASP.NET Core怎么使用EF SQLite对数据库增删改查

步骤 2

点击 视图使用 Entity Framework 的 MVC 控制器

ASP.NET Core怎么使用EF SQLite对数据库增删改查

模型类 选择 Users([项目名称].Models)

数据库上下文选择MyContext ([项目名称].Models)

点击 添加

ASP.NET Core怎么使用EF SQLite对数据库增删改查

步骤3

这时可以看到

Controller 多了 UsersController.cs 文件

Views 多了 Users 目录

请点击 运行 或按 F5,启动网站

在网站后面加上Users

例如 https://localhost:[实际端口]/Users,就可以对Users表为所欲为了

ASP.NET Core怎么使用EF SQLite对数据库增删改查

步骤4 添加数据

点击 Create new

ASP.NET Core怎么使用EF SQLite对数据库增删改查

结果

ASP.NET Core怎么使用EF SQLite对数据库增删改查

ASP.NET Core怎么使用EF SQLite对数据库增删改查

7 填写数据不能为空

注:这里涉及到特性、数据验证,笔者不再赘述,读者可以先了解,然后翻译别的文章。

经过上面操作,我们已经可以对数据库进行操作,实际上,虽然可以操作数据,可是如果我想设置某个项必须填写呢,某个项的格式必须是手机呢?总不能让用户随便填吧?

打开 Users.cs

添加引用

using System.ComponentModel.DataAnnotations;

修改Users类的代码如下

public class Users    {        public int ID { get; set; }       //主键        [Required]        public string Name { get; set; }  /n/用户名称        [Required(ErrORMessage ="不能为空")]        public int Age { get; set; }    //用户年龄        [Required]        [RegularExpression(@"^1[3458][0-9]{9}$", ErrorMessage = "手机号格式不正确")]        public int Number { get; set; } //用户手机号码    }

运行网站,打开 URL/Users,点击 Create New,然后不用填写内容直接提交,会发现

ASP.NET Core怎么使用EF SQLite对数据库增删改查

填写其它项,然后在 Number一项乱填数字,会发现

ASP.NET Core怎么使用EF SQLite对数据库增删改查

这个就是模型验证。

它不需要写什么代码,只要在属性上面加上 [特性]即可。

这方面知识,请另外查阅。

注:

  • [Required] 表示该项不能为空

  • [Required(ErrorMessage ="不能为空")] ErrorMessage ="" 就是不按此要求填写,会出现额提示

  • [RegularExpression(@"^1[3458][0-9]{9}$", ErrorMessage = "手机号格式不正确")] 这是正则表达式验证,填写的内容不符合格式的话,会出现错误提示。

关于ASP.NET Core怎么使用EF SQLite对数据库增删改查就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: ASP.NET Core怎么使用EF SQLite对数据库增删改查

本文链接: https://www.lsjlt.com/news/306818.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ASP.NET Core使用EF SQLite对数据库增删改查
    目录1新建ASP.NETCoreMVC应用1.1新建MVC应用1.2引入NuGet包引入教程依赖项2新建模型和上下文2.1新建模型类2.2新建上下文步骤1步骤2步骤33配置服务1直接...
    99+
    2024-04-02
  • ASP.NET Core怎么使用EF SQLite对数据库增删改查
    这篇文章将为大家详细讲解有关ASP.NET Core怎么使用EF SQLite对数据库增删改查,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1 新建ASP.NET Cor...
    99+
    2023-06-26
  • ASP.NET Core使用EF查询数据
    1.查询生命周期 在进入正题时候,我们先来了解EF Core查询的生命周期。 1.1LINQ查询会由Entity Framework Core处理并生成给数据库提供程序可处理的表示形...
    99+
    2024-04-02
  • SQLite数据库增删改查怎么操作
    在SQLite数据库中,可以使用SQL语句来进行数据的增删改查操作。 插入数据: 要插入数据,可以使用INSERT INTO语句,...
    99+
    2024-04-09
    sqlite
  • 如何使用Sqlite+RecyclerView+Dialog对数据进行增删改查
    小编给大家分享一下如何使用Sqlite+RecyclerView+Dialog对数据进行增删改查,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!原题目要求:(1)通过“添加联系人”按钮,跳转...
    99+
    2024-04-02
  • 使用mybatis怎么对数据库进行增删改查
    这篇文章将为大家详细讲解有关使用mybatis怎么对数据库进行增删改查,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。select一个select 元素非常简单。例如:<!--...
    99+
    2023-05-31
    mybatis
  • ASP.NET Core使用EF为关系数据库建模
    目录1.简介2.表映射2.1约定2.2数据注释2.3Fluent API3.列映射3.1约定3.2数据注释3.3Fluent API4.数据类型4.1约定4.2数据注释4.3Flue...
    99+
    2024-04-02
  • Android使用SQLite数据库实现基本的增删改查
    目录 一、创建activity_main和MainActivity界面 二、实现查询/删除功能创建activity_delete和DeleteActivity 三、实现添加功能创建activity_add和AddActivity  四、实...
    99+
    2023-09-15
    数据库 sqlite android java
  • SQLite数据库增删改查的方法是什么
    SQLite数据库的增删改查操作可以通过SQL语句来实现,常用的方法如下: 增加数据:使用INSERT INTO语句插入新的数据...
    99+
    2024-04-09
    sql
  • 在Android开发中怎么对SQLite数据库进行增删改查操作
    在Android开发中怎么对SQLite数据库进行增删改查操作?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。      一.创建一个自定义数据库&...
    99+
    2023-05-31
    sqlite android lite
  • java怎么对数据库进行增删改查
    在Java中进行数据库的增删改查操作,通常需要使用JDBC(Java Database Connectivity)来实现。以下是一个...
    99+
    2023-08-08
    java 数据库
  • ASP.NET Core如何使用EF为关系数据库建模
    本文小编为大家详细介绍“ASP.NET Core如何使用EF为关系数据库建模”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.NET Core如何使用EF为关系数据库建模”文章能帮助大家解决疑惑,下面跟着小编的思路...
    99+
    2023-06-29
  • android studio数据存储建立SQLite数据库怎么实现增删查改
    今天就跟大家聊聊有关android studio数据存储建立SQLite数据库怎么实现增删查改,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。实验目的:分别使用sqlite3...
    99+
    2023-06-22
  • android studio数据存储建立SQLite数据库实现增删查改
    实验目的: 分别使用sqlite3工具和Android代码的方式建立SQLite数据库。在完成建立数据库的工作后,编程实现基本的数据库操作功能,包括数据的添加、删除和更新。 实验要求...
    99+
    2024-04-02
  • 如何使用Jorm增删查改数据库
    这篇文章主要介绍“如何使用Jorm增删查改数据库”,在日常操作中,相信很多人在如何使用Jorm增删查改数据库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Jorm增删...
    99+
    2024-04-02
  • 利用mybatis怎么对数据库进行增删改查操作
    这篇文章将为大家详细讲解有关利用mybatis怎么对数据库进行增删改查操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。所需要用到的其他工具或技术:项目管理工具 : Maven测试运行工具 ...
    99+
    2023-05-31
    mybatis
  • 利用hibernate怎么对数据库进行增删改查操作
    本篇文章给大家分享的是有关利用hibernate怎么对数据库进行增删改查操作,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Hibernate对数据删除操作删除User表中个一条...
    99+
    2023-05-31
    hibernate
  • 怎么用php操作数据库(增删改查)
    PHP是一种非常流行的Web编程语言,它的特点是简单易学,可以用来创建动态网站和Web应用程序。而其中最常见的操作就是只增删改查(CRUD),本文将详细介绍PHP中的这些操作。增加数据在PHP中,添加数据通常是通过向数据库中插入一行新数据来...
    99+
    2023-05-14
    php 数据库
  • springboot使用JdbcTemplate完成对数据库的增删改查功能
    首先新建一个简单的数据表,通过操作这个数据表来进行演示DROP TABLE IF EXISTS `items`; CREATE TABLE `items` ( `id` int(11) NOT NULL AUTO_INCREMENT, ...
    99+
    2023-05-30
    spring boot 增删改查
  • winform数据库增删改查怎么实现
    在WinForm应用程序中实现对数据库的增删改查操作,可以按照以下步骤进行:1. 创建数据库连接:使用合适的数据库连接对象(如Sql...
    99+
    2023-09-05
    winform 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作