当前位置: 首页 > news >正文

如何使用EF框架操作Sqlite

1.下载相关的NuGet

 

 

 

 2.创建如下的项目结构

3.创建AppDbContext类

using Microsoft.EntityFrameworkCore;
using SaveSyetemConfiguration.Model;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace SaveSyetemConfiguration.DBContext
{public class AppDbContext : Microsoft.EntityFrameworkCore.DbContext{// 数据库连接字符串(动态创建时可通过参数传入)private readonly string _connectionString;// 构造函数接收连接字符串(支持动态配置)public AppDbContext(string connectionString){_connectionString = connectionString;}// 实体集(对应数据库表)public Microsoft.EntityFrameworkCore.DbSet<PerSon> PersonData { get; set; } = null;// 重写 OnConfiguring 配置数据库选项protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){if (!optionsBuilder.IsConfigured){optionsBuilder.UseSqlite(_connectionString); // 使用 SQLite 提供程序}}}
}

4.创建对应的Model类

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace SaveSyetemConfiguration.Model
{public class PerSon{[Key][DatabaseGenerated(DatabaseGeneratedOption.Identity)]public long ID { get; set; }public string Name { get; set; }public int Age { get; set; }}
}

5.在程序类进行简单的操作

using SaveSyetemConfiguration.DBContext;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace SaveSyetemConfiguration
{internal class Program{static void Main(string[] args){string DbPath = @"D:\NowText";string connectionString = "通道1";try{Directory.CreateDirectory(DbPath);connectionString = $"Data Source={DbPath}\\{connectionString}.db";AppDbContext Db = new AppDbContext(connectionString);Db.Database.EnsureCreated();Db.PersonData.Add(new Model.PerSon(){Age = 1,Name = "张三"});Db.PersonData.Add(new Model.PerSon(){Age = 1,Name = "李四"});var count = Db.SaveChanges();}catch (Exception){}}}}

结果如下:

http://www.lryc.cn/news/609525.html

相关文章:

  • 20250805问答课题-实现TextRank + 问题分类
  • 量子计算接口开发:Python vs Rust 性能对决
  • uniapp快遞上門提貨的時間選擇的插件
  • PyTorch生成式人工智能(25)——基于Transformer实现机器翻译
  • 代码详细注释:(linux)TCP客户端接收服务器端发的信息
  • AI 大模型分类全解析:从文本到多模态的技术图谱
  • Rust ⽣成 .wasm 的极致瘦⾝之道
  • 从 Hive 数仓出发,全面剖析 StarRocks、MySQL、HBase 的使用场景与区别
  • 【Spark征服之路-4.5-Spark-Streaming核心编程(三)】
  • [Oracle] TO_CHAR()函数
  • 安装MySQL教程时可能遇到的问题
  • 【Linux】重生之从零开始学习运维之GTID复制
  • XXE漏洞原理及利用
  • NSS-DAY17 2025SWPU-NSSCTF
  • Chrontel 【CH7103B-B】CH7103B HDMI to YPbPr Converter
  • 行业报告:.games域名正引领游戏娱乐产业营销新风向
  • 力扣 hot100 Day65
  • 嵌入式学习之51单片机——串口(UART)
  • 回归预测 | MATLAB实现BP神经网络多输入单输出回归预测+SHAP可解释分析
  • 分布式光伏气象站:为分散电站装上 “智慧之眼”
  • 零基础掌握 Scrapy 和 Scrapy-Redis:爬虫分布式部署深度解析
  • 分布式版本控制工具Git
  • Spring之【Bean的实例化方式】
  • 电脑忘记开机密码怎么办?【图文详解】5种方法重置/更改/取消/设置开机密码?
  • Java从入门到精通 - 算法、正则、异常
  • 深入浅出 RabbitMQ:简单队列实战指南
  • 【Linux指南】软件安装全解析:从源码到包管理器的进阶之路
  • 小杰数据结构(five day)——知人者智,自知者明。
  • WPF 按钮背景色渐变
  • 飞算 JavaAI:给需求分析装上 “智能大脑“