使用EFCore连接SQLite

简介

在使用EFCore连接SQLite之前我们先来了解一下SQLite

SQLite是一个轻量级、自包含、无服务器、零配置的事务性SQL数据库引擎,它支持SQL92标准的大多数查询语言并兼容ACID事务。具体如下:

  1. 轻量级:SQLite非常轻巧,它的库体积小,资源占用低,特别适合于嵌入式设备和移动应用,有时仅需几百KB的内存即可运行。
  2. 自包含:作为一个自给自足的数据库,SQLite不需要单独的服务器进程或操作系统进行管理。它通过直接访问磁盘文件进行数据存储。
  3. 无服务器:由于SQLite不需要运行服务器,因此简化了安装和管理过程,也降低了系统开销。
  4. 零配置:SQLite无需任何配置文件即可运行,使得它在简单性和易用性方面具有很大优势。
  5. 事务性:它支持事务(Transaction),即一系列操作要么完全成功,要么完全失败,这保证了数据的完整性。
  6. 兼容性:SQLite支持大部分SQL92标准,这意味着许多基于标准的SQL查询和命令都可以在SQLite上无缝运行。
  7. 跨平台:它可以在多种操作系统和平台上运行,包括Windows、Linux、Mac OS等。
  8. 多语言接口:SQLite提供了多种编程语言的API,如C、C++、Python、Java等,方便不同语言开发者使用。
  9. 开源:SQLite是开源软件,可以免费用于任何目的,包括商业用途。

安装Nuget包

新建一个.netCore的控制台项目

我们在项目的Nuget包管理器控制台中安装Microsoft.EntityFrameworkCore.Sqlite

NuGet\Install-Package Microsoft.EntityFrameworkCore.Sqlite -Version 8.0.2

 创建数据库

打开我们的数据库可视化管理工具Navicat,新建连接,选择SQLite

连接名随便取一个,类型选SQLite3,数据库文件选择放在我们刚刚创建的控制台项目下

创建一个Users表,待会测试用

数据库上下文

在项目中创建一个Users表的实体类和上下文类MyContext,如下图,刚刚创建的数据库文件与program类处于同一级

Users类

public class users
{public int Id { get; set; }public string Name { get; set; }
}

上下文 MyContext

数据库连接字符串:Data Source=data.db 

定义一个名为 Users 的公共虚拟属性,它的类型是 DbSet<users>DbSet<TEntity> 是 EF Core 中的一个泛型类,表示数据库中的一个表。在这里,它表示 users 表。

virtual 关键字允许 EF Core 在内部使用延迟加载来加载相关数据。

public class MyContext : DbContext
{protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){optionsBuilder.UseSqlite("Data Source=data.db");}public virtual DbSet<users> Users { get; set; } = null!;
}

Program

我们测试往数据库中添加一条数据,保存后再查询这条数据

class Program
{public static void Main(string[] args){using (var db = new MyContext()){var user = new users() { Id = 1, Name = "张三" };db.Users.Add(user);db.SaveChanges();var users = db.Users.ToList();}}
}

可以看到,在下面代码中的Users中,已经查出刚刚添加的数据了

刷新一下我们的Navicate,发现还是空的

这是因为此时我们是调试状态,因此此时修改的数据库文件是Debug目录下的这个,并且每次调试这里的data.db都会被我们的程序目录下的data.db给替换掉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/704426.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UE5 C++ Gas开发 学习记录(三)

添加AuraPlayerState,AuraAbilitySystemComponentBase和AuraAttributeSet 在Build.cs里添加 // Copyright Epic Games, Inc. All Rights Reserved. using UnrealBuildTool; public class MyGas : ModuleRules { public MyGas(ReadOnlyTargetRules Target) : base(Target) { P…

leetcode hot100打家劫舍三

本题是打家劫舍的变形&#xff0c;数据结构是树形。涉及到树的题目一定要想清楚树的遍历顺序&#xff08;前中后序&#xff09;。之后再考虑利用动态规划来解决。 动态规划是一直记录状态&#xff0c;我们可以根据动态规划的数组来记录变化的状态&#xff0c;最终求的自己想要…

Python字符串访问与拼接你搞懂了吗?

使用下标访问字符串&#xff0c;从0开始计数&#xff0c;-1表示最后一个字符。三种遍历字符串的方法&#xff1a;for循环、len()和enumerate()。字符串拼接只能是字符串之间使用&#xff0c;不能与数字拼接。 1.下标访问字符串 通过下标访问字符串的内容&#xff0c;下标从 0 …

Shell脚本介绍及脚本功能

文章目录 一、什么是shell二、hello word2.1 echo2.2第一个脚本 三、Bash的基本功能3.1别名3.2常用快捷键3.3输入输出3.4 输出重定向3.5 多命令执行3.6 管道符3.7 通配符和特殊符号 一、什么是shell Shell 是一个用 C 语言编写的程序&#xff0c;它是用户使用 Linux 的桥梁。S…

视频号视频下载教程:如何把微信视频号的视频下载下来

视频号下载相信不少人都多少有一些了解&#xff0c;但今天我们就来细说一下关于视频号视频下载的相关疑问&#xff0c;以及大家经常会问到底如何把微信视频号的视频下载下来&#xff1f; 视频号视频下载教程 视频号链接提取器详细使用指南&#xff0c;教你轻松下载号视频&…

Django后台管理(二)

一、自定义注册管理类介绍 官网:Django 管理站点 | Django 文档 | Django 注册模型除了使用 Django 默认的管理类admin,也可以自定义,比如: class StudentAdmin(admin.ModelAdmin):pass admin.site.register(Student, StudentAdmin)ModelAdmin 类是管理界面中模型的表示。…

功能富集分析 | GO| KEGG

写在前面 我们《复现SCI文章系列教程》专栏现在是免费开放&#xff0c;推出这个专栏差不多半年的时间&#xff0c;但是由于个人的精力和时间有限&#xff0c;只更新了一部分。后续的更新太慢了。因此&#xff0c;最终考虑后还是免费开放吧&#xff0c;反正不是什么那么神秘的东…

Linux环境下的性能分析 之 CPU篇(二)

2、CPU的使用情况分析 a、类似任务管理器的top & htop 说到对CPU的性能分析&#xff0c;大家一定不会忘记windows下那个最熟悉的工具&#xff1a;任务管理器。 有了这个玩意儿&#xff0c;我们就可以看到CPU的利用率&#xff0c;以及每一个进程所占用的CPU资源。那在Linu…

【论文精读】LLaMA1

摘要 以往的LLM&#xff08;Large Languages Models&#xff09;研究都遵从一个假设&#xff0c;即更多的参数将导致更好的性能。但也发现&#xff0c;给定计算预算限制后&#xff0c;最佳性能的模型不是参数最大的&#xff0c;而是数据更多的。对于实际场景&#xff0c;首选的…

Huggingface学习笔记

课程地址&#xff1a;【HuggingFace简明教程,BERT中文模型实战示例.NLP预训练模型,Transformers类库,datasets类库快速入门.】 什么是huggingface&#xff1f; huggingface是一个开源社区&#xff0c;提供了先进的NLP模型、数据集以及工具。 主要模型&#xff1a; 安装环境&…

【Java程序设计】【C00284】基于Springboot的校园疫情防控管理系统(有论文)

基于Springboot的校园疫情防控管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的校园疫情防控系统 本系统分为系统功能模块、管理员功能模块以及学生功能模块。 系统功能模块&#xff1a;在系统首页可以查…

LeetCode 1038.从二叉搜索树到更大和树

给定一个二叉搜索树 root (BST)&#xff0c;请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。 提醒一下&#xff0c; 二叉搜索树 满足下列约束条件&#xff1a; 节点的左子树仅包含键 小于 节点键的节点。 节点的右子树仅包含键 大于 节点键的节点。 左…

Spring Cloud与Docker集成:微服务容器化解决方案详解

推荐一款AI网站 AI写作与AI绘画智能创作平台 - 海鲸AI | 智能AI助手&#xff0c;可以免费领取GPT3.5无限卡 Spring Cloud 和 Docker 是两个不同的技术&#xff0c;但它们可以一起工作以构建、部署和管理微服务架构。下面是它们各自的简介以及它们如何协同工作的原理解析。 Sp…

蜘蛛蜂优化算法SWO求解不闭合MD-MTSP,可以修改旅行商个数及起点(提供MATLAB代码)

1、蜘蛛蜂优化算法SWO 蜘蛛蜂优化算法&#xff08;Spider wasp optimizer&#xff0c;SWO&#xff09;由Mohamed Abdel-Basset等人于2023年提出&#xff0c;该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为&#xff0c;具有搜索速度快&#xff0c;求解精度高的优势。VRPTW&#x…

043 多态

示例 public class A {public void say(){System.out.println("I am A");} } public class B extends A {Overridepublic void say(){System.out.println("I am B");} } public class Test {public static void main(String[] args) {A a new B(); // …

【Spring Boot 源码学习】深入 BootstrapContext 及其默认实现

《Spring Boot 源码学习系列》 深入 BootstrapContext 及其默认实现 一、引言二、往期内容三、主要内容3.1 BootstrapContext3.1.1 源码初识3.1.2 get 方法3.1.3 getOrElse 方法3.1.4 getOrElseSupply 方法3.1.5 getOrElseThrow 方法3.1.6 isRegistered 方法 3.2 ConfigurableB…

构建企业多维模型,助力财务战略规划

财务规划与分析是一个企业需要广泛实践、改革优化的领域。战略规划对于财务管理来说&#xff0c;对企业的未来发展具有长期且不可逆的影响。一般企业在做重要战略决策时面临的主要挑战是对于可能结果复杂性的预测&#xff0c;其干涉因素很多&#xff0c;规划范围也十分广泛&…

【Unity】如何从现有项目中抽取好用的资源

【背景】 在做Unity项目的过程中引入各种各样的Package&#xff0c;有的Package很大&#xff0c;但是觉得非常有用的可能只是几个Prefab或者Material等。如果直接拷贝想要的Prefab和Material&#xff0c;又需要自己确认所有有依赖关系的资源。 如果能将所有日常经受项目中自己…

cgroup底层技术研究一、cgroup简介与cgroup命令行工具

本文参考以下文章&#xff1a; 58 | cgroup技术&#xff1a;内部创业公司应该独立核算成本 特此致谢&#xff01; 一、cgroup简介 1. cgroup是什么 cgroup&#xff08;Control Group&#xff09;是Linux内核提供的一种机制&#xff0c;用于对进程或进程组进行资源限制、优先…

python[6]

类和对象 面向对象编程–说白就是让对象干活 创建类&#xff1a;class 类名&#xff1a; 创建类对象 对象名 类名&#xff08;&#xff09; 构造方法 1、构造方法的名称是__init__ 2、构造方法的作用&#xff1f; 构建类对象的时候会自动运行 构建类对象的传参会传递给构造…