C#如何使用EF Core连接SQLite数据库进行增删改查?

来源:编程网作者:USDT程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《C#如何使用EF Core连接SQLite数据库进行增删改查?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《C#如何使用EF Core连接SQLite数据库进行增删改查?》有用,将其分享出去将是对创作者最好的鼓励。

在C#项目里用EF Core连接SQLite,可以让我们以面向对象方式操作本地文件数据库,不必手写复杂SQL。下面从零开始演示一个控制台程序如何完成配置与基础增删改查。

C#如何使用EF Core连接SQLite数据库进行增删改查?

一、创建项目与安装依赖

新建一个.NET控制台应用,然后通过NuGet安装以下两个包:

  • Microsoft.EntityFrameworkCore.Sqlite
  • Microsoft.EntityFrameworkCore.Tools

可以在包管理器控制台执行:

dotnet add package Microsoft.EntityFrameworkCore.Sqlite
dotnet add package Microsoft.EntityFrameworkCore.Tools

二、定义实体与上下文

假设我们要保存一些书籍信息,先写实体类Book,再写继承DbContext的AppDbContext。

using System;
using Microsoft.EntityFrameworkCore;

// 书籍实体
public class Book
{
    public int Id { get; set; }
    public string Title { get; set; }
    public string Author { get; set; }
    public decimal Price { get; set; }
}

// 数据库上下文
public class AppDbContext : DbContext
{
    public DbSet<Book> Books { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder options)
    {
        // 使用本地文件test.db作为SQLite数据库
        options.UseSqlite("Data Source=test.db");
    }
}

三、创建数据库

在程序入口前,可调用EnsureCreated建库。下面演示主程序中的增删改查操作。

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        using var db = new AppDbContext();
        // 如果库不存在则创建
        db.Database.EnsureCreated();

        // 增:添加一本新书
        var book = new Book { Title = "C#入门", Author = "张三", Price = 39.9m };
        db.Books.Add(book);
        db.SaveChanges();

        // 查:查询所有书
        var allBooks = db.Books.ToList();
        foreach (var b in allBooks)
        {
            Console.WriteLine($"Id={b.Id}, Title={b.Title}, Author={b.Author}");
        }

        // 改:把第一本书价格改为49.9
        var first = db.Books.First();
        first.Price = 49.9m;
        db.SaveChanges();

        // 删:删除这本书
        db.Books.Remove(first);
        db.SaveChanges();
    }
}

四、常见注意点

SQLite连接字符串里的Data Source指向本地文件,发布时记得带上该文件或配置路径。EF Core的SaveChanges()方法才会真正提交修改,只调用Add或Remove不会落库。若实体有外键关系,可用OnModelCreating方法配置,入门阶段先保持单表最简单。

小贴士:在开发阶段用EnsureCreated可以快速建表,生产环境建议用迁移命令来管理结构变更。

常用迁移命令

命令作用
Add-Migration Init生成初次迁移
Update-Database将迁移应用到数据库

五、小结

通过以上步骤,我们完成了C#用EF Core连SQLite的入门流程:装包、写实体与上下文、EnsureCreated建库,再用LINQ做增删改查。你可以把这个模式套用到其他实体上,慢慢熟悉EF Core的跟踪机制与LINQ写法。

C#SQLiteEF_Core修改时间:2026-07-27 13:57:18

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。