Massive.Sqlite.cs -- 原型失败,因为没有 COLUMN_NAME;修复使用 PRAGMA table_info?

Posted

技术标签:

【中文标题】Massive.Sqlite.cs -- 原型失败,因为没有 COLUMN_NAME;修复使用 PRAGMA table_info?【英文标题】:Massive.Sqlite.cs -- Prototype fails because there is no COLUMN_NAME; Fix using PRAGMA table_info? 【发布时间】:2012-01-10 17:05:22 【问题描述】:

我在玩 Rob Connery 的 Massive.Sqlite,但在调用 Prototype 属性时遇到问题:获取基于此 SQL 语句的架构

SELECT * FROM sqlite_master WHERE type = 'table' and name = @0

其中@0 是表的名称。现在,使用该查询的结果,它尝试使用 DB 的默认值创建一个 Expando 集,并尝试访问该集中不存在的名为 COLUMN_NAME 的集中属性(列有:类型、名称、tbl_name、rootpage、sql)。

所以我认为我可以使用 SQLite Pragma 修复它:

PRAGMA table_info('table_name');

但这也不起作用,这一次是因为执行 pragma 时我得到 no results

我有什么遗漏吗?我必须激活连接字符串中的编译指示吗?有没有更好的方法来解决这个问题?

或者也许我只是遇到了错误解决方案的问题。

感谢您的回答!

技术说明:

使用来自 Nuget 的 System.Data.SQLite 版本 1.0.66.0

【问题讨论】:

【参考方案1】:

你是对的,Sqlite Schema 检测在 Massive 中被破坏了。已经在 github issue#86 上报告过,但尚未应用修复。

我刚刚创建了一个带有修复程序的拉取请求:https://github.com/robconery/massive/pull/122,您可以从那里获取代码,也可以在合并后从主 massive repository 获取代码。

【讨论】:

以上是关于Massive.Sqlite.cs -- 原型失败,因为没有 COLUMN_NAME;修复使用 PRAGMA table_info?的主要内容,如果未能解决你的问题,请参考以下文章

来自 json 的原型反序列化将在新字段或未知枚举值上失败

jQuery 和原型冲突

访问 Javascript 对象原型 [重复]

Maven 在现有目录中生成原型

。NET Core 3.1 gRPC Docker:无法使原型路径相对

表单设计及Axure原型