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?的主要内容,如果未能解决你的问题,请参考以下文章