1

我已将 sqlite-net-plc 包添加到我的项目中,并创建了一个如下所示的数据库类:

public class Database
{
    public Database()
    {
        var dbPath = Path.Combine(FileSystem.AppDataDirectory, "databaseTest.db3");

        Connection = new SQLiteAsyncConnection(dbPath);
        Connection.CreateTableAsync<User>().Wait();
    }

    public SQLiteAsyncConnection Connection { get; set; }
}

这似乎适用于 Android 应用程序,允许我从任何地方操作数据库。

但是,当我通过具有活动 Mac 连接的 IOS 模拟器运行此应用程序时,我收到以下错误:

'SQLite.SQLiteConnection' 的类型初始化程序引发了异常。

我相信无法解决与 SQLite 数据库的活动连接,但我不知道为什么。对此的任何见解都会很棒。

提前致谢。

4

2 回答 2

1

在将 sqlite-net-pcl 添加到股票 MAUI 测试应用程序之后,我在 iOS 和 Android 上都看到了相同的异常,直到我明确地将https://www.nuget.org/packages/SQLitePCLRaw.bundle_green/2.0.7包添加到该项目。

我看到 9 月 7 日,“原始”包作者指出他有工作要做:https ://github.com/ericsink/SQLitePCL.raw/discussions/449#discussioncomment-1282643

sqlite-net-pcl 依赖于一年多的“原始”nuget 2.0.4 版本。也许 2.0.7 修复了一些与 iOS 相关的东西?在那个时间范围内,我在https://github.com/ericsink/SQLitePCL.raw/commits/master看到了一些 Apple 特定的提交。

也许您已经安装了一个更新的版本,其中包含针对 Android 的修复,但没有针对 iOS?

于 2021-12-03T19:55:52.703 回答
0

在 github 上回答的问题:https ://github.com/dotnet/maui/issues/3211

于 2021-12-08T10:04:17.607 回答