问题标签 [coolstorage]
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.
orm - CoolStorage 无法设置一对一关系
问题是我无法理解如何在两个对象之间建立 OneToOne 关系,以使第一个对象与第二个对象具有链接,而第二个对象与第一个对象具有链接。这是代码:
问题是,当我创建产品和模型并将模型的属性“产品”设置为创建的并保存时,产品的“模型”属性不会设置并保持为 NULL。我已经尝试使产品和模型属性的所有本地和外键都相同(例如“ModelID”),但它并没有解决问题。这样做的正确方法是什么?
我想制作其中一个可以解决问题[OneToMany]
,但会返回一个集合,而我需要一个属性返回一个对象。
更新
这是一个简单的解决方案,人们称之为拐杖:
xamarin.ios - Vici CoolStorage for MonoTouch 是否支持 UniqueIdentifier 键?
一个这样声明的 sqlite 表:
在 Windows 上被 Vici CoolStorage 正确读取,但在 MonoTouch 上,抛出以下异常:
[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidCastException: Cannot cast from source type to destination type.
at Vici.CoolStorage.CSDataProviderSQLite.GetSchemaColumns (System.String tableName) [0x00000] in <filename unknown>:0
at Vici.CoolStorage.CSSchema.CreateColumns () [0x00000] in <filename unknown>:0
at Vici.CoolStorage.CSSchema..ctor (System.Type objType) [0x00000] in <filename unknown>:0
at Vici.CoolStorage.CSSchema.Get (System.Type objectType) [0x00000] in <filename unknown>:0
at Vici.CoolStorage.CSList``1[Store.CoolStorage.Note]..ctor () [0x00000] in <filename unknown>:0
看起来根据类型 ID 检测列的数据类型的代码没有处理 Vici 的 MonoTouch 的 CSDataProviderSqlite 中的 UNIQUEIDENTIFIER 类型:
来自 CSSqliteConnection.GetSchema:
这里没有 UNIQUEIDENTIFIER 的处理程序。这是 Vici CoolStorage 中的错误吗?
c# - 同一张表的多对多关系
我正在尝试在同一个表中添加类别之间的关系。我有一个
类别(ID 整数主键自动增量,名称文本)
表和
CATEGORIES_CATEGORIES (ID INTEGER PRIMARY KEY AUTOINCREMENT, CATEGORIES_ID INTEGER NOT NULL, SUBCATEGORIES_ID INTEGER NOT NULL)
桌子。
我正在尝试将它们与 Vici Coolstorage ORM 映射在一起。我已经上课了
类别类
CategoryCategory 类
但我不能让它工作。任何人都可以帮助我让这种关系发挥作用吗?
multithreading - Vici 冷却存储附加线程
我有一个相对较小的 iPhone 和 Android 单点触控项目,并计划添加 WP7。我在 SQLite 上使用 vici coolstorage 作为 ORM,它对我来说效果很好,但是有一个问题。它使用 db 为每个线程创建额外的线程。由于应用程序是大规模并行的,我已经达到了线程的限制,所以我想改变它。我发现线程创建是在 CSConfig.cs 中执行的,其中每次从不同线程调用 GetDB 都会创建一个新线程:
被_threadData
标记[ThreadStatic]
。我想每次我使用 ORM 时都会调用这个 GetDB(我将 CSConfig 中的默认 DB 设置为我的 DB)。线程是在ThreadData
构造函数内部创建的。线程执行这个函数:
因此,基本上它等待调用者终止,然后处理数据库连接。
问题是,我怎样才能覆盖这种行为,或者让 GC 处理数据库连接,或者Dispose()
在调用线程终止之前调用自己(我使用 DB 控制所有线程,所以我可以做到)。我知道当线程结束时不让 ORM 处理断开连接是不好的,但是我不能为每个工作线程使用一个额外的线程。
c# - 如何使用 CoolStorage 删除表中的所有记录?
我使用 Vici CoolStorage 在我的 Windows Phone 应用程序中处理 SQLite 数据库。如何删除表中的所有记录?
iphone - MonoTouch CoolStorage OneToMany 缓存问题
我遇到了 CoolStorage 的问题,其中在第一次读取列表时缓存了 OneToMany 关系,然后当数据稍后更改时,该列表无法更新。
重新启动我的应用程序时,列表是正确的,所以它一定是一个缓存问题,我在 CoolStorage 文档或任何地方都找不到解决方案。
我在下面粘贴了我的单元测试代码。
我有一个具有 Person 类型的 Opponent 的 Game 类。有很多游戏,一个人可以是很多游戏的对手。
我的 Person 类有一个CSList
名为 OpponentGames,所以在任何时候我都可以对那个人说“获取这个人是对手的游戏”。
在单元测试中我第一次引用“person.OpponentGames.Count”时,它正确地告诉我有一个游戏。创建第二个游戏并将我的人添加为对手后,它仍然会为 OpponentGames 报告一场游戏。
如果我删除第一个计数,则测试通过,因此第一个检查结果将被缓存,并且不会从那里更新。
我将不胜感激任何建议!谢谢。
SQL (sqlite3)
设置:
CoolStorage .Net 类:
最后,单元测试:
c# - 如何将自定义 sql 查询映射到冷存储中的 CSObjects?
我想在使用 Vici.CoolStorage 时使用复杂的 sql 查询来获取对象列表。它本身提供了特定的查询语法,但它的功能不足以满足我的需求。在网站上有一个如何将自定义查询结果映射到自定义对象的示例,但我想要的是获取 CSObject 后代的列表(CSList),与使用 CSObject.List () 方法获得的相同。
.net - WPF Datagrid 与 vici coolstorage CSList 绑定导致转换错误
当我尝试将 CSList 用作 WPF DataGrid 的 ItemsSource 时,出现错误
无法将“System.Object[]”类型的对象转换为“Product[]”类型
我不完全确定是否可以将其用作绑定源,但根据几乎不存在的 vici coolstorage 文档,他们的集合应该适合绑定。这是它似乎失败的行:
有人可以告诉我这是否可能,如果是,我做错了什么?
谢谢!
[编辑] 这是堆栈跟踪(略有改动)
many-to-many - Vici coolstorage 在保存 ManyToMany 纯关系中的错误?
我们有一个测试用例,它在实体 X 和 Y 之间创建多对多关系,然后删除相同的关系。
SQLite 抛出关系存在的约束冲突。经过一番挖掘,我们发现关系表中还有一个关系表项。
看来这可能是 Vici CoolStorage 本身的一个错误。处理删除和添加对象的代码如下所示(在 CSListGeneric.cs 中):
请注意,在执行删除语句后,已删除对象集合设置为 null。但是,添加的对象集合不会类似地重置。
在底部添加行似乎可以解决问题。
这是正确的解决方法,还是我们遗漏了什么?
orm - Has Vici CoolStorage been updated to work with WinRT / Metro?
The project website does not indicate any support for WinRT.
Is there a way to do this? We (like many others, presumably) had bet on Vici CoolStorage for its cross-platform capabilities.