问题标签 [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 投票
1 回答
945 浏览

sqlite-net-extensions - 多对多关系未在 Sqlite 扩展中更新

请原谅代码墙,但我需要设置舞台......

鉴于这些课程,我应该如何在保持关系的同时将学生、员工和监护人插入数据库?我应该注意服务器返回填充的学生记录,所以这是我的起点。

我试过conn.InsertOrReplaceWithChidlren(student);...插入学生、学生工作人员和学生监护人记录,但没有插入实际工作人员或监护人。我尝试 conn.InsertOrReplaceWithChildren(student); conn.InsertOrReplaceWithChildren(student.Teachers); conn.InsertOrReplaceWithChildren(student.Guardians); 了 Oddly,最终插入了工作人员、监护人和教师,但两个交叉表都没有任何数据......

--更新---我刚试过 conn.InsertOrReplaceWithChildren(student.Teachers); conn.InsertOrReplaceWithChildren(student.Guardians); conn.InsertOrReplaceWithChildren(student); 而且效果很好......问题是为什么?为什么多对多似乎依赖于操作顺序?

0 投票
1 回答
99 浏览

sqlite - 用相同的键连接两条记录

假设我有这两个对象:

现在我必须处理给定的数据库模式,如下所示:

(两者共享相同的 id,因此可以将它们连接到查询中的单个记录中。)

问题:我有机会通过带有 SQLite-Net 扩展的 sqlite-net 解决这个问题吗?如果是这样:那将如何运作?

0 投票
1 回答
1906 浏览

sqlite - Sqlite.net 扩展,无法使用 GetWithChildren 获取数据

我正在创建一个数据库,其中多个类作为其他类的子类。使用外键编写工作正常,但是当我尝试取回数据时,它会引发错误:

SQLiteNetExtensions.dll 中出现“SQLiteNetExtensions.Exceptions.IncorrectRelationshipException”类型的未处理异常

附加信息:MatchDetail.timeline:OneToOne 关系中的至少一个实体必须具有外键

这是我的创建代码:

我的班级:

其他类只是一个 id 和一些其他基本类型,我一直在努力解决这个问题,但它就是不想工作。

编辑:

有错误:

SQLiteNetExtensions.dll 中出现“SQLiteNetExtensions.Exceptions.IncorrectRelationshipException”类型的未处理异常

附加信息:MatchDetail.participantIdentities:找不到 OneToMany 关系的外键

0 投票
1 回答
257 浏览

sqlite-net - SQLite-Net 扩展:如何摆脱关系记录?

假设我在官方示例中有一个多对多的关系:

如果我现在要删除一个学生,则中间对象表示的关系记录也不会被删除。(如果我启用级联删除,主题将被删除——不应该发生的事情。)

目前我正在通过使用自定义查询删除记录来手动清理,但是 sqlite-net 有更好的方法吗?

0 投票
1 回答
541 浏览

sqlite-net - 与查找表的多对多关系

...

好的,所以我正在尝试在 Person 和 Color 之间建立多对多的关系。颜色表将预先填充静态数据。

现在的问题是,每当我执行“InsertWithChildrenAsync”命令时,它总是将新数据插入到颜色查找表中。有没有办法在不影响颜色表的情况下插入具有选定颜色的人员记录?

0 投票
1 回答
1512 浏览

c# - SQLite-Net Extensions 中多个(相关)类类型的数组

有没有办法让从 SQLite.Net 扩展中的同一个父类继承的不同类类型的集合?理想情况下,我希望有一组符合接口或抽象类的对象,但是我什至无法让标准类的子类型工作。

除了multipleTypesAllowed 的空数组之外,我无法让上述内容返回任何内容。如果我使父类不抽象并实例化它,它会起作用,但即使它的子类也不起作用。有没有办法让 SQLite.Net 继承工作?

干杯。

0 投票
1 回答
157 浏览

c# - 带有 sqlite 本地存储的 Windows 手机应用程序

我正在尝试将我从我JSON的数据库中返回的对象保存到local storage数据库中SQLite

我已经导入了很多包以及 SQLite 框架。

我也做了这两个类: 活动

活动成员

一个活动可以有更多的活动成员。当我构建并运行时,我收到以下错误: 在此处输入图像描述

当我调试时,我发现它是由以下几行引起的:在活动中:

在活动成员中:

关于如何正确执行此操作的任何帮助?

编辑 我有这些参考:

在此处输入图像描述

0 投票
1 回答
179 浏览

entity-framework - SQLite.net Extensions 多次加载同一个实体,而不是返回同一个引用

我在 Windows 10 通用应用程序中使用 SQLite.Net 扩展的 PCL 版本。这是我第一次使用它。它通常似乎正在工作,但它似乎是多次加载实体,而不是重用对同一对象的引用。

根据 SQLite.Net 扩展文档:

SQLite-Net Extensions 将确保任何对象只从数据库中加载一次,并将解决循环依赖和反向关系,同时保持完整的引用。这意味着具有相同标识符的同一类的任何返回对象都将是对完全相同对象的引用。

这对我来说似乎没有发生。这是我的代码:

当它运行时,我创建了一些初始数据。然后我使用 GetWithChildren 加载这些对象并对其进行调试。结果如下:

如您所见,对象似乎加载正确,但组 1(例如)的对象引用不同(请参阅哈希码)。

我是否可能误解了 SQLite.Net Extensions 处理对象引用的方式?也许它可以在对 GetWithChildren 的一次调用中处理重用对象引用,但不能在同一个 SQLiteConnection 上的多次调用中处理?

如果是这种情况,您应该如何加载具有这些关系的更复杂的对象图?

0 投票
1 回答
1412 浏览

c# - GetAllWithChildren 上的 SQLite 扩展内部连接

我们目前正在尝试将 SQLite 扩展 (PCL) 作为 ORM。

我们想知道如果在实体中正确配置了子项,映射是否应该在子项上构建一个带有 INNER JOIN 的 SELECT?

如果我们使用 GetAllWithChildren 获取所有项目:

我们的结果是对每个子项(EnterpriseClient)进行多项选择,我们希望它可以在一次选择和一次连接中收集所有数据。

我们的配置是错误的还是应该是这样的?

0 投票
1 回答
1983 浏览

c# - SQLite 异步连接缺少 WithChildren 方法

我有一个使用 SQLite 的 Xamarin Forms 项目。我有一个父子模型,在相关字段上具有正确的外键、多对一和级联选项。

我一直在我的数据库方法中 使用 Scott Hanselman 的 AsyncLock 类( http://www.hanselman.com/blog/ComparingTwoTechniquesInNETAsynchronousCoordinationPrimitives.aspx ),如下所示:

到目前为止没有问题。我面临的问题是我看不到此连接上的级联操作。我添加了一个 normal SQLiteConnection,它有 -WithChildren方法,但我需要使用SQLiteAsyncConnection连接。

我参考了 SQLite.Net、SQLiteNetExtensions、SQLite.Net.Async 和 SQLitePCL.raw。

为什么我WithChildren在异步连接对象上看不到 ~ 方法?