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

MAUI iOS发布版中EntityFramework Core无法创建SQLite数据库并加载初始数据的问题求助

MAUI iOS发布版中EntityFramework Core无法创建SQLite数据库并加载初始数据的问题求助

各位开发者好,我遇到一个非常困扰的问题:我正在开发的MAUI应用,在Android设备、iOS模拟器上都能正常创建SQLite数据库并填充初始数据,但切换到iOS真机的Release构建版本后,数据库里就完全没有数据,连预先填充的初始条目都看不到。我使用的是Entity Framework Core来处理数据库操作。

背景与前期处理

最开始我用的是独立的SQLite NuGet包,后来切换到EF Core后,已经彻底清理了所有旧的SQLite相关包,只保留EF Core安装时自动引入的依赖,避免出现版本冲突问题。

核心代码结构

我定义的DbContext类如下:

internal class MyDbContext : DbContext
{
    public MyDbContext()
    {
        SQLitePCL.Batteries_V2.Init();
        this.Database.EnsureCreated();
    }

    public DbSet<Entity1> Entities1 { get; set; }
    public DbSet<Entity2> Entities2 { get; set; }
    public DbSet<Entity3> Entities3 { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        string dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "MyDatabase.db3");
        optionsBuilder
            .UseSqlite($"Filename={dbPath}");
    }
}

同时写了一个供业务控制器继承的基础控制器类:

internal abstract class ControllerBase<T> where T : IDBItem, new()
{
    protected IMapper _mapper;

    /// <summary>
    /// Use only in case of unavoidable execution of raw sql
    /// </summary>
    protected MyDbContext GetContext() => new MyDbContext();

    public ControllerBase()
    {
        var config = new MapperConfiguration(cfg => {
            cfg.AddProfile<DefaultMappingProfile>();
        });
        _mapper = config.CreateMapper();
    }
}

实体类的结构示例(带有主键特性):

[PrimaryKey("Id")]
public class Entity1: IDBItem
{
    public int Id { get; set; }
    public string Name { get; set; }
    public float SomeField { get; set; }
}

诡异的现象

每次业务类通过GetContext()获取上下文时,都会触发EnsureCreated()检查数据库是否存在并创建,这一逻辑在Android上完全正常。iOS模拟器上也能正常看到数据库里的初始数据,但iOS真机的Release版本里就是没有任何数据,这点真的让我摸不着头脑。

已尝试的无效方案

  • 彻底清理并重新安装NuGet包:移除所有旧的SQLite相关包,只保留EF Core及其依赖,问题依然存在。

有没有大佬能给点排查思路或者解决方案?万分感谢!

备注:内容来源于stack exchange,提问作者Sergey Ivanov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 09:53:12