问题标签 [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.

0 投票
3 回答
1189 浏览

xamarin - SQLite-Net 扩展与 SQLite-Net PCL 的兼容性(注意没有句点)

基本上我的问题归结为SQLite-Net Extensions ( NuGet Link ) 是否与 Frank A. Krueger 的SQLite-net PCL兼容。据我了解,Oystein Krog 在过去的某个时候创建​​了一个分支来改进事物(可能在 Frank 更新事物之前?),因此SQLite.Net PCL应运而生。

现在有一个PCLFrank 的“官方”版本,我想坚持使用它而不是 fork。然而,目前还不清楚是否SQLite-Net Extensions真的只支持分叉。该网站说它支持SQLite-net,但依赖项说SQLite.net。为了我(和未来的人)的缘故,任何澄清都将不胜感激!!!

编辑:我知道“SQLite-Net PCL”只是 NuGet 包的名称,实际上并不是独立的 PCL。我有这个(没有 SQLite-Net 扩展)在实际 PCL 中的代码中完全工作。

0 投票
3 回答
1394 浏览

c# - 性能不佳的 Sqlite.net 扩展

您好我正在开发一个加载大量行(大约 10K)的 Xamarin 应用程序

我的性能真的很差,比如 2 分钟插入一个对象的 5K 行。

我使用 InsertOrReplaceWithChildren:

由于我添加了“RunInTransaction”,我得到了改进(在 5 分钟之前)。

我的对象包含关系船。

有什么办法可以优化吗?

0 投票
2 回答
554 浏览

c# - 如何在没有 Json.Net 依赖的情况下使用 SQLite-Net 扩展(使用替代 ITextBlobSerializer)?

我正在编写一个使用 SQLite-Net 扩展的插件(.Net Framework 4.61)。这些要求为 ITextBlobSerializer 提供 Newtonsoft 的 Json.NET。Json.NET 反过来需要 System.Numerics 作为参考。

该插件不能使用任何 Nuget 包,必须作为压缩源提交,然后在应用程序提供商的服务器上编译。手头的挑战是应用程序编译器不支持 System.Numerics 并且 System.Numerics 也不是可嵌入的互操作类型。我要求添加 System.Numerics 的请求已被忽略。

由于我无法使用 System.Numerics,我最好的方法可能是摆脱 Json.Net 并用我自己的实现替换 ITextBlobSerializer。

是否有人能够提供没有其他依赖项的 ITextBlobSerializer 实现?我不确定如何在这方面进行。

0 投票
0 回答
728 浏览

c# - 非常慢的 sqlite(SQLite-Net 扩展)

我在我的 Windows 手机 8.1 上使用 SQLite-Net 扩展,插入 2000 行需要 20 多分钟,因为我认为我的 SD 购物车的速度。但是从数据库中选择似乎也很慢。通过 ID(int) 选择我的所有 (2000) 行大约需要 120 秒。我试图在我的数据库打开后立即执行 SQLITE PRAGMAS。它对选择的速度没有影响。

我正在使用 SQLite Net 扩展的异步版本:SQLite.Net.Async.SQLiteAsyncConnection

你能给我一些建议如何正确快速地使用带有 SQLite-Net 扩展的 sqlite 吗?

这是我从子文件夹中选择文件的递归方法的示例:

这是插入记录的示例:

谢谢

0 投票
0 回答
509 浏览

c# - 安装 sqlite-net-extensions 时 sqlite 引用冲突

我正在尝试将 sqlite-net-extensions 添加到我的项目中,但似乎它正在安装 sqlite 3.05 而不是使用现有的 3.10 得到这个-

严重性代码描述项目文件行列源抑制状态错误已导入具有相同简单名称“SQLite.Net”的程序集。尝试删除其中一个引用(例如'C:\Users\xxx.nuget\packages\SQLite.Net-PCL\3.0.5\lib\Windows8\SQLite.Net.dll')或签署它们以启用并行边。泰米

如果我在解决方案中有 sqlite 引用,我可以删除 3.05,但问题是它们只列在“通用 Windows”引用中,我得到“SQLite.Net [3.0.5.0]”和“SQLite .Net[3.1.0.0]"

在这里不知所措。。

0 投票
0 回答
988 浏览

c# - 在 SQLiteNetExtensions 中插入和更新子级不起作用

我遵循了https://bitbucket.org/twincoders/sqlite-net-extensions中的示例,我的出现了一个非常奇怪的错误“System.ArgumentException:'System.Int32' 类型的对象无法转换为'System.String'类型’。”

这些是我正在使用的课程,我正在建立一种关系。

任何人都知道为什么会出现这个错误?当我也使用 UpdateWithChildren 时会发生这种情况。

编辑

我已经解决了这个问题,在 ForeignKey 我必须使用 Int 而不是字符串之后,修复在这里:

0 投票
1 回答
263 浏览

xamarin.forms - 删除级联不起作用

我的数据库中有两张表,一张用于食谱,一张用于配料。当一个特定的食谱被删除时,我希望它的所有成分也消失。我已经声明了与级联属性集的一对多关系,但是当我删除一些食谱时,它不会删除相关成分。

这是我的表:

这是我的删除操作:

我究竟做错了什么?

0 投票
1 回答
1841 浏览

xamarin - SQLiteAsyncConnection UpdateWithChildren 不可用

我正在尝试使用 SQLite.net 在我的 PCL 中实现 OneToMany 关系。我有异步扩展包 (SQLiteNetExtensions.Async),我将代码基于 https://bitbucket.org/twincoders/sqlite-net-extensions中的示例。我正在使用 SQLiteAsyncConnection,但 UpdateWithChildren 方法似乎不可用,只能使用 SQLiteConnection。

0 投票
1 回答
492 浏览

datetime - SQLite 和 DateTime 准确性问题

我在 UWP 应用程序中使用 SQLite.NET 和 Extensions 来存储包含 DateTime 字段的对象,我得到了奇怪的结果。日期的存储似乎与应有的时间相差几个小时,有时会将 DateTime 的日期推迟到第二天。

我正在存储一个名为 Record 的 POCO 类,其中包含看起来像这样的 Situation 对象

包含情况的 Record 类是使用 SQLite 通过存储库模式存储的(我只包含了相关方法):

最后,我使用 ConnectionManager 类获得了存储库的 AsyncConnection:

此 AsyncConnection 将 DateTimes 存储为刻度,我怀疑这可能是问题的根源。

在一种情况下,在使用 Repository.InsertOrUpdateAsync 存储 Record 对象之前,Situation.DateTime 具有以下值:

日期时间 = {2016-07-01 12:59:59 PM}

滴答声 = 636029747990010000

但是,使用 Repository.GetByIdAsync 拉记录时,DateTime 值如下:

日期时间 = {2016-07-01 4:59:59 PM}

滴答声 = 636029891990010000

如您所见,SQLite 存储 DateTime 的方式出现了问题。Ticks 字段已更改,导致出现新日期。我不是 100% 确定这是为什么。我知道 DateTime 可能存在准确性问题,但如果 DateTimes 存储为 Ticks,那么 Ticks 字段不应该匹配吗?为什么他们会改变?

假设我必须将 DateTimes 存储为刻度,我该如何解决这个问题?我正在考虑将 DateTime 小时设置为 12,这样它就可以在不改变日期的情况下增加或减少几个小时,但这显然并不理想。

任何帮助,将不胜感激。:)

0 投票
2 回答
3146 浏览

c# - GetAllWithChildren() 性能问题

我在以下代码中使用SQLite-Net 扩展 从 Sqlite 数据库中检索 1000 行及其子关系:

问题是性能很尴尬。因为GetAllWithChildren()返回 List 而不是 Enumerable。是否存在使用 Sqlite.net 扩展将记录加载到 Enumerable 的任何方法?

我现在使用Table()来自Sqlite.net的方法,将获取的行加载到 Enumerable 但我不想使用它,因为它不了解关系并且根本不加载子实体。