You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为UWP Windows 10应用安装Entity Framework/EF Core与SQLite?

在UWP Windows 10应用中配置Entity Framework Core + SQLite(本地App_Data存储)

我太懂你在NuGet里翻得晕头转向的感觉了——UWP的环境确实有特定的依赖限制,版本选错了要么装不上要么跑不起来。别担心,咱们一步步来,精准搞定EF Core搭配SQLite,还能把数据库稳稳存到本地的App_Data目录里。

一、选对NuGet包(关键!)

UWP只支持Entity Framework Core(EF6对UWP的支持非常有限,直接放弃),而且要选和你项目适配的稳定版本:

  • 优先选EF Core 6.x或7.x版本(这两个版本对UWP的支持最成熟,适配Windows 10 1809及以上版本)
  • 必须安装的核心包:Microsoft.EntityFrameworkCore.Sqlite(SQLite的EF Core提供程序)
  • 如果需要使用迁移功能(创建/更新数据库结构),额外安装Microsoft.EntityFrameworkCore.Tools

小提醒:安装时确保两个包的版本完全一致,比如都选6.0.25,避免版本冲突。

二、配置数据库存储到App_Data目录

UWP的本地存储路径是由系统管理的,咱们需要手动创建App_Data目录,然后把数据库文件放在里面:

1. 提前创建App_Data目录

在App.xaml.cs的OnLaunched方法里添加异步代码,确保应用启动时目录已存在:

using Windows.Storage;

protected override async void OnLaunched(LaunchActivatedEventArgs e)
{
    // 保留你原有的启动代码...

    // 创建App_Data目录(如果已存在则直接打开)
    var localFolder = ApplicationData.Current.LocalFolder;
    await localFolder.CreateFolderAsync("App_Data", CreationCollisionOption.OpenIfExists);
}

2. 配置DbContext的数据库路径

创建你的DbContext类,指定SQLite的连接字符串,指向App_Data目录下的数据库文件:

using Microsoft.EntityFrameworkCore;
using System.IO;
using Windows.Storage;

public class AppDbContext : DbContext
{
    // 定义你的实体集合,比如:
    public DbSet<Product> Products { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        // 获取本地存储路径,拼接数据库文件路径
        var localFolder = ApplicationData.Current.LocalFolder;
        var dbPath = Path.Combine(localFolder.Path, "App_Data", "MyAppDatabase.db");
        
        // 配置使用SQLite
        optionsBuilder.UseSqlite($"Data Source={dbPath}");
    }

    // 可选:如果需要自定义实体映射,重写OnModelCreating
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        // 比如配置Product实体的主键:
        modelBuilder.Entity<Product>().HasKey(p => p.Id);
    }
}

// 示例实体类
public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

三、初始化数据库

有两种方式初始化数据库,选适合你的:

方式1:使用EF Core迁移(推荐,适合需要迭代数据库结构的场景)

  1. 打开Visual Studio的Package Manager Console(PMC)
  2. 运行命令创建初始迁移:
    Add-Migration InitialCreate
    
  3. 应用迁移到数据库:
    Update-Database
    

方式2:自动创建数据库(适合简单场景,无需迁移)

在应用启动时(比如MainPage.xaml.cs的构造函数里)调用EnsureCreated():

public MainPage()
{
    this.InitializeComponent();
    InitializeDatabase();
}

private async void InitializeDatabase()
{
    using var dbContext = new AppDbContext();
    // 如果数据库不存在则创建,存在则不做操作
    await dbContext.Database.EnsureCreatedAsync();
}

四、版本适配注意事项

  • 你的UWP项目目标版本必须至少是Windows 10 1809(10.0.17763.0),否则EF Core 6.x+可能无法安装。可以在项目属性的“应用”选项卡中调整目标版本。
  • 如果你的项目是旧版本UWP(比如1709及以下),只能使用EF Core 3.x版本,但尽量升级到较新的Windows版本以获得更好的支持。

内容的提问来源于stack exchange,提问作者Bimo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:15:30