惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tailwind CSS Blog
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
爱范儿
爱范儿
小众软件
小众软件
MyScale Blog
MyScale Blog
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
SegmentFault 最新的问题
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
V
V2EX
量子位
云风的 BLOG
云风的 BLOG
A
About on SuperTechFans
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
Martin Fowler
Martin Fowler
C
Check Point Blog
月光博客
月光博客

博客园 - 丹心石

数据字节位改变 锁定鼠标光标到指定屏幕 WPF 访问WebAPI Avalonia 避坑经验总结 Avalonia 窗口与配置 Avalonia 程序打包成Linux平台的运行程序 数据处理与转换 信号与槽 Qt 串口通信 Avalonia 设计时DataContext数据山下文和WPF设计时DataContext数据上下文 Avalonia Ursa 使用 Avalonia-消息对话框 Avalonia-数据绑定 Avalonia-样式 阿里图标库iconfont 在Avalonia 中的使用 Avalonia MVVM Avlonia 自定义控件 Sqlite EF CodeFirst For WPF win10 环境变量不可编辑 WCF-双工通讯 MahMetro 框架学习 由于缺少调试目标“xxx”Visual Studio 无法开始调试。或者响应地设置outputpath和AssemblyName 属性 WPF 应用程序本地化-资源文件方式 FastReport 行高设置实现行高随内容自动变化
Sqlite EF For ConsoleCore
丹心石 · 2025-10-27 · via 博客园 - 丹心石

在跨平台开发中使用Sqlite EF 框架

1. 安装依赖包

install-package Microsoft.EntityFrameworkCore
install-package EntityFrameworkCore.Sqlite
install-package Microsoft.EntityFrameworkCore.Sqlite.Design
install-package Microsoft.EntityFrameworkCore.Tools

2.建立数据模型

using System.ComponentModel.DataAnnotations;
namespace EFCoreQuickStart.Models
{
    public class Book
    {
        [Key]
        public int BookId { get; set; }
        public string Text { get; set; }
    }
}

3.建立数据上下文

using Microsoft.EntityFrameworkCore;

namespace EFCoreQuickStart.Models
{
    public class BookDbContext : DbContext
    {
        public DbSet<Book> Books { get; set; }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlite("Data Source=books.db");
        }
    }
}

4.迁移数据

(系统不会自动生成数据库,因此需要通过迁移命令来创建数据库文件)

Add-Migration InitalCreate
Update-Database

5.使用

using EFCoreQuickStart.Models;
using Microsoft.EntityFrameworkCore;

namespace EFCoreQuickStart
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
            using (var db = new BookDbContext()) {
                Console.WriteLine("插入一条记录");
                db.Books.Add(new Book() { Text = "C#高级编程" } );
                Console.WriteLine("成功插入一条记录");
                try {
                    db.SaveChanges();
                }
                catch (DbUpdateException ex)
                {
                    Console.WriteLine(ex.InnerException?.Message);
                }
                //查询
                Console.WriteLine("查询所有记录");
                var model = db.Books
                    .OrderBy(b => b.BookId)
                    .First();
                Console.WriteLine(model.Text);
                //更新
                Console.WriteLine("更新一条记录");
                model.Text = "C#高级编程(第10版)";
                db.SaveChanges();
                Console.WriteLine("更新成功!");
            }
        }
    }
}