问题标签 [sqlite-net-extensions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android - 'SQLite.SQLiteConnection' 的类型初始化程序引发了异常。---> System.DllNotFoundException: e_sqlite3
在我们的 Xamarin Android 项目中,我们正在尝试从 sqlite-net 切换到官方的 sqlite-net-pcl 包。
但是,在创建新 SQLiteConnection 时进行此切换后,我收到以下异常:
'SQLite.SQLiteConnection' 的类型初始化程序引发了异常。---> System.DllNotFoundException: e_sqlite3
完全例外:
Xamarin 由以下原因引起:android.runtime.JavaProxyThrowable:System.TypeInitializationException:“SQLite.SQLiteConnection”的类型初始化程序引发了异常。---> System.DllNotFoundException: e_sqlite3 at (wrapper managed-to-native) SQLitePCL.SQLite3Provider_e_sqlite3+NativeMethods:sqlite3_libversion_number () at SQLitePCL.SQLite3Provider_e_sqlite3.SQLitePCL.ISQLite3Provider.sqlite3_libversion_number () [0x00000] in :0 at SQLitePCL.raw。 SetProvider (SQLitePCL.ISQLite3Provider imp) [0x00000] in <4472a4c16754425197d915f39ebd937e>:0 at SQLitePCL.Batteries_V2.Init () [0x0000d] in <1125db7e18f0475797b2764ec6653cf1>:0 at SQLite.SQLiteConnection..cctor () [0x00000] in /Users/fak /Dropbox/Projects/sqlite-net/src/SQLite.cs:171 --- 内部异常堆栈跟踪结束 --- 在单声道。
在日志中,我可以看到以下信息:
12-01 10:43:05.356 D/Mono (11194): DllImport 试图加载:'e_sqlite3'。12-01 10:43:05.358 D/Mono (11194): DllImport 错误加载库'/storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/ libe_sqlite3“未找到”。12-01 10:43:05.360 D/Mono (11194): DllImport 错误加载库'/storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3.so':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3.so" 找不到'。12-01 10:43:05.360 D/Mono (11194): DllImport 错误加载库 '/system/lib/libe_sqlite3': 'dlopen failed: library"/data/app/com. psonar.android-1/lib/x86//system/lib/libe_sqlite3" 未找到'。12-01 10:43:05.360 D/Mono (11194): DllImport 错误加载库'/system/lib/libe_sqlite3.so' :'dlopen 失败:库“/data/app/com.psonar.android-1/lib/x86//system/lib/libe_sqlite3.so”未找到'。12-01 10:43:05.360 D/Mono (11194 ): DllImport 错误加载库'libe_sqlite3': 'dlopen failed: library "/data/app/com.psonar.android-1/lib/x86/libe_sqlite3" not found'. 12-01 10:43:05.361 D/Mono (11194):DllImport 错误加载库“libe_sqlite3.so”:“dlopen 失败:库”/data/app/com.psonar.android-1/lib/x86/libe_sqlite3.so"未找到'。12-01 10:43:05.361 D/Mono (11194): DllImport 错误加载库'e_sqlite3':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86/e_sqlite3”未找到'。12-01 10:43:05.362 D/Mono (11194): DllImport 错误加载库'/storage/模拟/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/ libe_sqlite3“未找到”。12-01 10:43:05.364 D/Mono (11194): DllImport 错误加载库'/storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3.so':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/。覆盖libe_sqlite3':'dlopen 失败:找不到库“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”'。12-01 10:43:05.365 W/Mono (11194):DllImport 无法加载库“dlopen 失败:未找到库“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”。12-01 10:43:05.365 D/Mono (11194): DllImport 试图加载:'e_sqlite3'。12-01 10:43:05.366 D/Mono (11194): DllImport 错误加载库'/storage/emulated/0/Android/data/com.psonar.android/files/。libe_sqlite3':'dlopen 失败:找不到库“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”'。12-01 10:43:05.365 W/Mono (11194):DllImport 无法加载库“dlopen 失败:未找到库“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”。12-01 10:43:05.365 D/Mono (11194): DllImport 试图加载:'e_sqlite3'。12-01 10:43:05.366 D/Mono (11194): DllImport 错误加载库'/storage/emulated/0/Android/data/com.psonar.android/files/。12-01 10:43:05.365 D/Mono (11194): DllImport 试图加载:'e_sqlite3'。12-01 10:43:05.366 D/Mono (11194): DllImport 错误加载库'/storage/emulated/0/Android/data/com.psonar.android/files/。12-01 10:43:05.365 D/Mono (11194): DllImport 试图加载:'e_sqlite3'。12-01 10:43:05.366 D/Mono (11194): DllImport 错误加载库'/storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/ libe_sqlite3“未找到”。12-01 10:43:05.368 D/Mono (11194): DllImport 错误加载库 '/storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3.so':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3.so" 找不到'。12-01 10:43:05.368 D/Mono (11194): DllImport 错误加载库'/system/lib/libe_sqlite3': 'dlopen failed: library"/data/app/com. psonar.android-1/lib/x86//system/lib/libe_sqlite3" not found'。12-01 10:43:05.368 D/Mono (11194): DllImport error loading library '/system/lib/libe_sqlite3.so' :'dlopen 失败:库“/data/app/com.psonar.android-1/lib/x86//system/lib/libe_sqlite3.so”未找到'。12-01 10:43:05.368 D/Mono (11194 ): DllImport 错误加载库'libe_sqlite3': 'dlopen failed: library "/data/app/com.psonar.android-1/lib/x86/libe_sqlite3" not found'. 12-01 10:43:05.368 D/Mono (11194):DllImport 错误加载库“libe_sqlite3.so”:“dlopen 失败:库”/data/app/com.psonar.android-1/lib/x86/libe_sqlite3.so"未找到'。12-01 10:43:05.369 D/Mono (11194): DllImport 错误加载库'e_sqlite3':'dlopen失败:找不到库“/data/app/com.psonar.android-1/lib/x86/e_sqlite3”。12-01 10:43:05.370 D/Mono (11194): DllImport error loading library '/storage/模拟/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/ libe_sqlite3“未找到”。12-01 10:43:05.371 D/Mono (11194): DllImport 错误加载库 '/storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3.so':'dlopen失败:库“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/。覆盖/libe_sqlite3.so" 找不到'。12-01 10:43:05.372 D/Mono (11194): DllImport 错误加载库 '/system/lib/libe_sqlite3': 'dlopen failed: library"/data/app/com. psonar.android-1/lib/x86//system/lib/libe_sqlite3" 未找到'。12-01 10:43:05.372 D/Mono (11194): DllImport error loading library '/system/lib/libe_sqlite3.so' :'dlopen 失败:库“/data/app/com.psonar.android-1/lib/x86//system/lib/libe_sqlite3.so”未找到'。12-01 10:43:05.372 D/Mono (11194 ):加载库'libe_sqlite3'的DllImport错误:'dlopen失败:找不到库“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”'。12-01 10:43:05.372 D/Mono (11194):DllImport 错误加载库“libe_sqlite3.so”:“dlopen 失败:库”/data/app/com.psonar.android-1/lib/x86/libe_sqlite3.so"未找到'。12-01 10:43:05.373 D/Mono (11194): DllImport 错误加载库'libe_sqlite3':'dlopen失败:找不到库“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”。12-01 10:43:05.373 W/Mono(11194):DllImport 无法加载库“dlopen 失败:找不到库“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”。/data/app/com.psonar.android-1/lib/x86/libe_sqlite3“未找到”。/data/app/com.psonar.android-1/lib/x86/libe_sqlite3“未找到”。
很明显出了什么问题:System.DllNotFoundException: e_sqlite3但是我找不到任何可以解决这个问题的相关信息。
我检查了我的 nuget 包,它们似乎都已正确安装。
我检查了包裹位置,一切都正确。非常不确定原因可能在哪里。
编辑: 在这里向包的作者报告: https ://github.com/praeclarum/sqlite-net/issues/478
sqlite-net-extensions - 当我用其他外键更新对象中的子项时,我丢失了外键
我正在使用 SQLite.NET-PCL 和 SQLiteNetExtensions
对象:
“插入 Object1 - 这有效”
“插入 Object2s 和 UpdateWithChildren Object1 - 这行得通”
“插入 Object3s 和 UpdateWithChildren Object2 - 此 UpdateWithChildren 有效,但也将 Object2.object1_id 更新为 0”
当我用孩子更新 object2 时,Object2.object1_id 为 0,我丢失了 Object2 中的 Object1_foreign_key。
任何的想法?我的问题是什么?有什么错误?
xamarin - SQLite-net-pcl - 总是将 ID 返回为 0 (Xamarin)
由于 Android 7.0 SQlite 问题,我最近从 SQLite.NET 转到 SQLite-net-pcl。
在此过程中,我更新了所有库,并且在插入/删除等方面一切正常。
我遇到的唯一问题是,每次我从数据库中检索项目时,它的 ID 始终为 0。这会导致更新项目出现问题。以前有人遇到过这个问题吗?
提前致谢。
xamarin - SQLite-net-pcl - SQLite.SQLiteException:无法添加主键列
我今天似乎遇到了各种各样的问题。在签署 APK 时,我根本无法让 Sqlite-net-pcl 正常运行。调试和发布工作正常,但每次我创建 APK 的签名版本时,应用程序都会因这个问题而崩溃:-
这是我的模型的一个例子: -
有没有人见过这个?
c# - SQLite.Net 扩展 - 更新时删除子级
我有以下两个课程。当我保存包含多个项目 (B) 的 A 时,我得到了预期的结果。但是,当我保存对 A 的更改时,例如一个空的 Items(B) 列表,我希望表 B 中的所有元素都会自动被删除,因为它们没有在任何地方引用(不打算单独查询它们)。相反,每个项目的外键 (IDofA) 在表中设置为 Null。在我的情况下,这导致表(B)无限增长,因为 A 的某些对象永远不会被删除,只是更新。
c# - 多对多“自我”关系SQLite:有可能吗?
我正在使用 SQLite.net 和SQLite-Net Extensions。我想创建一个多对多的自我关系。
就我而言,我有一个带有一些兄弟姐妹的子班,当然兄弟姐妹仍然是儿童类型。因此我尝试实现多对多关系:
子类
兄弟会班
这应该是所有的工作。
然后我创建一个Child
并在列表中添加一个兄弟Siblings
,但是当我尝试将类保存在数据库中时,InsertOrReplaceWithChildren(Child,true)
仅使用ID_child1
更新并ID_child2
保持为 0。
知道吗?我究竟做错了什么?
亚历克斯
c# - 一对多关系数据库
我有以下 json 对象,我试图将它们存储在 sqlite 的两个不同表中。这是场景,我先下载了一组学生并检查了数据库,一切看起来都很好。
但是,当我让另一组学生插入现有表时。对于第一组数据集, fewStudentId
的值为 NULL,但最新的数据集StudentId
是正确的。
studentId
更详细地说,您在StudentSpecifications
表中也有相同的内容。如果要插入的第二个数据集具有相同的StudentId
,则这些会影响第一个数据集并使它们成为NULL
,但第二个数据集StudentId
是正确的。
StudentId 用作ForeignKey
. 我怀疑我在使用OnetoMany
关系,但我不知道如何处理?
学生.cs
学生规范.cs
插入表格
xamarin.forms - 如何建立连接?
在此页面https://bitbucket.org/twincoders/sqlite-net-extensions 我发现了如何使用 SQLite-Net 扩展。但是为了开始使用它,有一个调用:
如何实现这个方法?
sqlite - 使用 Sqlite-net 扩展的多对多关系,得到 NotSupportedException: 不知道 System.Collections.Generic.List
我有一个新的 Xamarin Forms 应用程序,我正在尝试将 Sqlite-net 和 Sqlite-net 扩展用于 ORM。我已按照本指南创建 n:n。这是我的两个对象,以及它们的中间对象:
国家
名
国家名
因此,在我的应用程序的起点 App.xaml.cs 中,我尝试首先创建运行良好的 NationFirstNameRepository。接下来,我尝试创建 NationRepository,在构造函数中出现异常。在 CreateTable() 行上:
国家资料库.cs
我是在做一些乱七八糟的事情,还是完全忘记了一些事情?非常感谢任何建议。