Sqlite EF For ConsoleCore

在跨平台开发中使用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("更新成功!");
            }
        }
    }
}

posted @ 2025-10-27 08:41  丹心石  阅读(4)  评论(0)    收藏  举报