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

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Apple Machine Learning Research
Apple Machine Learning Research
Last Week in AI
Last Week in AI
Blog — PlanetScale
Blog — PlanetScale
V
Visual Studio Blog
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
博客园 - Franky
IT之家
IT之家
博客园 - 叶小钗
Engineering at Meta
Engineering at Meta
The GitHub Blog
The GitHub Blog
雷峰网
雷峰网
腾讯CDC
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
人人都是产品经理
人人都是产品经理
MongoDB | Blog
MongoDB | Blog
大猫的无限游戏
大猫的无限游戏
Martin Fowler
Martin Fowler
宝玉的分享
宝玉的分享
博客园_首页
G
Google Developers 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("更新成功!");
            }
        }
    }
}