我使用sqlite数据库创建我的trac enviromnets,它运行良好。
现在我想直接从数据库获取一些信息,我正在使用C#来使用System.Data.SQLite来完成。我遇到的问题是设计器中的错误导致表没有主键。
收到此错误后,我发现所有在schema中定义了多个主键的表都没有“转换”为sqlite,这些信息都会丢失。
我相信问题出现在sqlite_backend.py但是python并不是我的专长而且我很着急,所以如果你可以指导我快速修复。
更新(更多细节):
System.Data.SQLite
“支持ADO.NET 3.5实体 框架几乎支持所有 实体框架功能 Sql Server支持并传递99%的 MS的EFQuerySamples演示中的测试 应用“。
Visual Studio 2005/2008设计时 支持您可以添加SQLite 连接到服务器资源管理器, 使用查询创建查询 设计师,拖放表到一个 键入的数据集等等!
当我将表格拖到设计器时,某些表格不会出现在设计器上。原则是,
“表/视图'main.attachment'确实如此 没有定义主键,没有 可以推断出有效的主键。 此表/视图已被排除。至 使用实体,您将需要 检查您的架构,添加正确的 键,并取消注释。“
问题是这样,没有实体=没有数据。
更新(更多信息):
我的目标不是改变数据模型。
在trac schema表附件, auth_cookie ,枚举, node_change ,权限,会话, session_attribute , ticket_change , ticket_custom 是使用主键定义的。
当我浏览文件trac.db(默认)时,未使用模式中指定的primary_keys定义表。
我想要一个解决方案来解决trac sqlite db的litle 功能。 我不认为这是创建后编辑表格的最佳解决方案,以添加未创建的pk。
更新
任何想法?!
答案 0 :(得分:0)
您可能需要查看Trac Database API。它是用Python编写的,但你可以很容易地在C#中重写它。至少它会为您找到解决方案的起点。 http://trac.edgewall.org/wiki/TracDev/DatabaseApi