问题标签 [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.
c# - 在 Vici CoolStorage 中运行查询时出现 NullReferenceException
这是我的代码:
有时我得到一个 NullReferenceException 但我不知道为什么。
请帮我!
sqlite - 如何在 wp7 上使用coolstorage 更改sqlite db?
我正在使用coolstorage 和sqlite 作为数据库为wp7 编写应用程序。
我选择 sqlite 的原因是因为它似乎有很好的更新模式的能力。
但是,在我的测试中,我可以运行“更改表...”命令,但是如果我添加一列然后尝试读取该列,则会收到该列不存在的错误。
但是如果我关闭应用程序并再次运行它,该列就在那里。
我想过尝试关闭我的连接,但我不知道如何使用coolstorage来做到这一点。有办法吗?那行得通吗?
我是 Coolstorage 和 SQLite 的新手,因此不胜感激。
如何在不关闭并重新打开应用程序的情况下更改 sqlite 架构?
[更新:2011 年 12 月 15 日] 我们通过确保在查询受影响的表之前运行架构更新来避免这个问题,无论如何这可能是正确的做法。
如果有人在对表运行查询后想出一种方法来更改架构,我仍然有兴趣知道。
coolstorage - 如何在 CoolStorage 中访问多对多关系中的额外数据?
我在一个有一些多对多关系的项目中使用 CoolStorage。一些连接表上有额外的数据来描述关系。
例如:表 Alpha、Beta 和 AlphaBeta。
Alpha和Beta之间的多对多关系存储在AlphaBeta中。AlphaBeta的主键是来自Alpha(AlphaID)和Beta(BetaID)的键的组合,即(AlphaID, BetaID)。
但 AlphaBeta 也有一些额外的数据,如“DisplayOrder INT NOT NULL”
在数据类中,我使用 [ManyToMany("AlphaBeta", pure=true)] 属性定义了多对多关系,但是如何访问每个关系的 DisplayOrder?
我认为这并不重要,但这是一个使用 SQLite 的 Windows Phone 应用程序。
c# - Vici Coolstorage 文本字段在 WP7 应用程序中未正确显示(缺少某些字符)
我有一个使用coolstorage ORM从我的WP7应用程序访问的sqlite数据库。用于 db 文本字段的字符集(德语)是 UTF-8。数据库非常简单,只有一张表。我在应用程序中的模型如下所示:
然后我通过执行以下操作从数据库中获取一行:
问题是所有特殊的德语字符都像这样显示:�,即使它们已正确存储在 db.xml 中。所有正常的 ASCII 字符都显示得很好。
我该如何解决这个问题?提前致谢。
sqlite - CoolStorage 字段不等于过滤器
我正在开发一个带有 SQLite 本地数据库的 Windows Phone 7 应用程序,我已经坚持了一点。
我定义了几个类,每个类都有一个映射设置,我希望检索一个带有一些过滤的列表。我发现了许多如何检查相等值的示例,但没有找到不相等检查的示例。
此过滤器可以正常工作,但是当我使用以下内容对其进行更新时,它会失败:
(Services.CalendarDates.Date != @CurrentDate 和 Services.CalendarDates.Date.ExceptionType != 2)
错误代码是:Vici.CoolStorage.WP7.dll 中出现“System.InvalidCastException”类型的第一次机会异常
Services 是 OneToOne,Services.CalendarDates 是 OneToMany 映射。我是否使用了太多过滤器值或我做错了什么?使用 <> 也不起作用。
c# - 是否有任何 CoolStorage for MonoTouch 活动的记录?
将 CoolStorage 用作 ASP.NET 项目的一部分时,您可以在 Web.Config 中定义一个日志文件,其中 CoolStorage 活动被转储。
使用 CoolStorage for MonoTouch 时是否有类似的可能性?
c# - 在 Monotouch 中使用 CoolStorage 映射问题
我正在使用 Monotouch 试用 Vici CoolStorage,但似乎遇到了人际关系方面的问题。使用以下内容,我尝试使用单个调查填充数据库,然后使用 for 循环生成 5 个问题的列表。
当我运行它时,似乎存在将问题映射到数据库中的调查的问题,因此,如果有人能告诉我我错过了什么,将不胜感激!给出的错误是“Vici.CoolStorage.CSException:无法读取关系调查”。
课程
数据库表
环形
.net - Coolstorage 查询错误
我一直在寻找 Linq-To-SQL 的开源替代方案,并遇到了Vici CoolStorage,它非常适合我的需求(轻量级、开源、支持 Access 和 SQL Server)。
但是,我在让它检索数据时遇到了一些麻烦(尽管它可以很好地添加数据),并且我已经使用 2 个不同的数据库在 2 个不同的环境中复制了相同的问题,所以很明显这是我做错了,希望有人可以指出那是什么。
我创建了一个带有 2 个表的新 Access mdb - AccountStatus 和 Account。AccountStatus 包含 AccountStatusID、AccountStatusName,而 Account 包含 AccountID、AccountName、AccountStatusID。
我已将 Vici.CoolStorage 和 Vici.Core 引用添加到我的项目(使用 NuGet),创建了一个域文件夹,并添加了以下 2 个类以映射到我的表:
帐户状态:
帐户:
然后,我将以下代码添加到要测试的 Form 的 Load 事件中:
它成功添加了“实时”和“关闭”记录,但是当我尝试使用“执行查询时出错。可能的语法错误”查询 CSList 的计数时失败,“对象引用未设置为对象实例的 InnerException。 ”。
有人知道我在这里做错了什么吗?
编辑:我已经将 Vici.CoolStorage dll 换成了 Activa.CoolStorage dll(在 CodePlex找到,可以追溯到 2008 年),现在一切正常,所以它肯定与最新版本有关(Vici 是 1.5,Activa 是 1.2 )。旧版本似乎不支持 SQL 日志记录
c# - 使用日期参数时的“数据类型不匹配”
我正在尝试在我的项目中实现 CoolStorage,但是在使用日期参数时遇到了问题。当我传入 null 作为日期参数时,它会成功添加记录,但是如果我通过实际日期传递,则在调用 .Save() 将新记录写入数据库时会出错。我有(Activa)CoolStorage 源代码并找到了它失败的地方,但不知道如何修复它。
它失败的代码如下(特别是该dbCommand.ExecuteNonQuery()
行):
sqlQuery 包含:
@P18 包含违规日期,这是一个 CSParameter 对象,其值为:
此外,正在使用的数据库是Access。抛出的错误是一个 OldDbException,它读取{"Data type mismatch in criteria expression."}。
任何人都可以就如何解决这个问题提供任何建议吗?
编辑:计划开始时间字段在计划表中定义为日期/时间。我需要将其所需的属性设置为 True,但已禁用以通过将 StartTime 排除在外来测试添加记录。通过 CoolStorage 类应用的参数如下:
当我注释掉 Schedule.StartTime = DateTime.Now 行时,我可以成功添加记录,否则会出现上述错误。如果不编辑我的 ORM 映射类,我无法将格式更改为文本,这无疑会在其他地方导致错误。我想我可以改变 CoolStorage DataProvider 类,但我假设这不应该是必要的?
EDIT2:作为测试,我截获了上面发布的 SQL 以删除 @P18 引用并硬编码日期并正确添加记录:
我还尝试通过将参数的值转换为格式为 #yyyy-MM-dd hh:mm:ss# 的字符串来修改参数的值,但是我仍然收到标准表达式中的数据类型不匹配错误。
EDIT3:我已经按照 Abhishek 的(编辑 - 也是 Dean 的)建议通过如下修改 CSParameterCollection 类将 DateTime 转换为字符串来修复它。如果我决定使用不同的数据库,希望这不会导致问题,但它已为 Access 修复:
c# - LINQ 如何得到它的结果
我正在使用 CoolStorage 作为 ORM,并且对查询数据库的频率有疑问。
我正在返回一个团队列表,并且还想显示每个团队中包含的用户数量。我正在通过调用返回团队,Team.List()
并且有 2 个选项我可以考虑如何返回用户数量。一种是向 Team 类添加一个属性,该属性返回其 [OneToMany] SysUsers 的计数,另一种是对Team.List()
. 下面的代码演示了这两种方法,它们都返回相同的结果。
我试图了解这如何影响数据库交互,例如它会首先返回一个团队列表,然后对每个团队运行一个单独的查询以获取用户数量吗?如果我想再添加 2 个或 3 个字段,它会为每个附加字段运行另一个单独的查询吗?这两种方法有什么区别吗?
我担心的是,如果连接不好,即使是简单的查询也可能没有响应。
CoolStorage 中存在运行即席 SQL 查询的选项,对于更复杂的查询,我是否最好这样做?还是我什么都不担心?