【发布时间】:2023-03-07 20:06:01
【问题描述】:
刚开始使用 Blazor,尝试通过 Microsoft.Data.Sqlite 库使用 Sqlite。 创建了一个在 Windows 窗体项目中运行良好的数据类,其中 bin 文件夹下的 net5.0-windows 文件夹包含一个运行时文件夹,其中包含用于各种平台的 e_sqlite3 dll。
创建了一个简单的“Hello World”Blazor Web 应用并添加了我的数据类并得到以下错误:
暴击:Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100] 未处理的异常呈现组件:“Microsoft.Data.Sqlite.SqliteConnection”的类型初始化程序引发了异常。 System.TypeInitializationException:“Microsoft.Data.Sqlite.SqliteConnection”的类型初始化程序引发了异常。 ---> System.Reflection.TargetInvocationException:调用的目标已抛出异常。 ---> System.DllNotFoundException: e_sqlite3
bin 文件夹不包含任何运行时文件夹或 e_sqlite3 dll。
在 Google 上搜索这似乎是一个常见错误,并且很明显是关于如何部署包,但我还没有找到解决方案。
蚂蚁指针?
【问题讨论】:
-
如果你想在服务器端使用 sqlite,你应该使用 blazor 服务器模板。如果您想在 blazor webassembly 的客户端使用它 - 这是不可能的,如果是这种情况,您可能应该查看
IndexedDB。 -
感谢您的回复。我会调查替代方案。我希望继续使用 Web Assembly 模板。我仍然对整个 Blazor 技术有所了解。我正在寻找一种轻量级的便携式解决方案,它可以在 linux 上运行,并且理想情况下(我很欣赏这在 Blazor 中“还没有”准备好)也可以在智能手机上运行。
-
那么这个轻量级应用应该做什么样的数据访问呢?如果很简单,你可以自己抽象出来,为浏览器场景做本地存储适配器,为别人做文件系统适配器。
-
这实际上是一个旧项目,我正在重新利用它来尝试学习一些新技术。最初的数据库是 SqlCompact,我打算切换到 SQLite,但是只有大约 10 个表,每个表最多 10k 行,所以我可以查看替代方案。与此同时,我在理解 Blazor 和 Web Assembly 方面取得了进展。