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

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
H
Help Net Security
V
Visual Studio Blog
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
Microsoft Security Blog
Microsoft Security Blog
Apple Machine Learning Research
Apple Machine Learning Research
MyScale Blog
MyScale Blog
The Cloudflare Blog
Martin Fowler
Martin Fowler
D
Docker
腾讯CDC
F
Fortinet All Blogs
雷峰网
雷峰网
GbyAI
GbyAI
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Blog — PlanetScale
Blog — PlanetScale
Engineering at Meta
Engineering at Meta
博客园 - 聂微东
博客园 - 叶小钗

博客园 - 丹心石

数据字节位改变 锁定鼠标光标到指定屏幕 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("更新成功!");
            }
        }
    }
}