gpt4 book ai didi

xamarin.ios - Vici CoolStorage for MonoTouch 是否支持 UniqueIdentifier 键?

转载 作者:行者123 更新时间:2023-12-04 05:12:01 24 4
gpt4 key购买 nike

一个sqlite表声明如下:

CREATE TABLE Note(Id UNIQUEIDENTIFIER, Title TEXT)

在 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 的 CSDataProviderSqlite for MonoTouch 中的 UNIQUEIDENTIFIER 类型:

来自 CSSqliteConnection.GetSchema:
switch (dbType) 
{
case "TEXT": dataType = typeof(string); break;
case "VARCHAR": dataType = typeof(string); break;
case "INTEGER": dataType = typeof(int); break;
case "BOOL": dataType = typeof(bool); break;
case "DOUBLE": dataType = typeof(double); break;
case "FLOAT": dataType = typeof(double); break;
case "REAL": dataType = typeof(double); break;
case "CHAR": dataType = typeof(string); break;
case "BLOB": dataType = typeof(byte[]); break;
case "NUMERIC": dataType = typeof(decimal); break;
case "DATETIME": dataType = typeof(DateTime); break;
}

这里没有 UNIQUEIDENTIFIER 的处理程序。这是 Vici CoolStorage 中的错误吗?

最佳答案

我只想修改 Vici,因为您似乎可以访问源代码:

switch (dbType) 
{
case "TEXT": dataType = typeof(string); break;
case "VARCHAR": dataType = typeof(string); break;
case "INTEGER": dataType = typeof(int); break;
case "BOOL": dataType = typeof(bool); break;
case "DOUBLE": dataType = typeof(double); break;
case "FLOAT": dataType = typeof(double); break;
case "REAL": dataType = typeof(double); break;
case "CHAR": dataType = typeof(string); break;
case "BLOB": dataType = typeof(byte[]); break;
case "NUMERIC": dataType = typeof(decimal); break;
case "DATETIME": dataType = typeof(DateTime); break;
case "UNIQUEIDENTIFIER": dataType = typeof(Guid); break;
}

如果还有更多需要,您将不得不尝试。除非没有尝试。使用来源,卢克。

关于xamarin.ios - Vici CoolStorage for MonoTouch 是否支持 UniqueIdentifier 键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14809049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com