缺失或无效的主键

1 投票
1 回答
504 浏览
提问于 2025-04-15 22:42

我用sqlite数据库创建了我的trac环境,运行得很好。

现在我想直接从数据库获取一些信息,我用C#来实现,使用的是System.Data.SQLite。我遇到的问题是,设计器报错,因为表没有主键。

在出现这个错误后,我发现所有在schema中定义了多个主键的表都没有“转换”成sqlite格式,这些信息丢失了。

我认为问题出在sqlite_backend.py文件上,但我对python不太熟悉,而且我很着急,所以希望你能给我一些快速解决的建议。

更新(多一点细节):

System.Data.SQLite

“支持ADO.NET 3.5实体框架,几乎支持Sql Server的所有实体框架功能,并通过了微软EFQuerySamples演示应用程序99%的测试。”

Visual Studio 2005/2008设计时支持,你可以在服务器资源管理器中添加一个SQLite连接,使用查询设计器创建查询,将表拖放到类型化数据集中等等!

当我把表拖到设计器时,有些表没有成功。这是因为,

“表/视图'main.attachment'没有定义主键,无法推断出有效的主键。这个表/视图已被排除。要使用这个实体,你需要检查你的schema,添加正确的主键,并取消注释。”

问题就是这样,没有实体就没有数据。

更新(更多信息):

我的目标不是改变数据模型。

trac schema中,表attachmentauth_cookieenumnode_changepermissionsessionsession_attributeticket_changeticket_custom都定义了主键。

当我浏览默认的trac.db文件时,这些表并没有按照schema中指定的主键来定义。

我想要一个解决方案来解决trac sqlite数据库这个小“特性”。我觉得在创建后编辑表来添加未创建的主键并不是最好的解决办法。

更新

有什么想法吗?!

1 个回答

0

你可以看看Trac数据库的API。它是用Python写的,不过你可能可以很容易地用C#重写一遍。至少这会给你一个起点,帮助你找到解决方案。

撰写回答