【问题标题】:DbMetal chokes on repeated foreign key references in SQLite - any ideas?DbMetal 在 SQLite 中重复外键引用时窒息 - 有什么想法吗?
【发布时间】:2010-05-03 22:45:22
【问题描述】:

我一直在努力让 DbMetal 处理我的 SQLite 数据库。我终于把问题隔离了。它不允许一个表对同一列有两个外键引用。

例如,包含这两个表的 SQLite 数据库将失败:

CREATE TABLE Person
(
    Id INTEGER PRIMARY KEY,
    Name TEXT NOT NULL
);

CREATE TABLE Match
(
    Id INTEGER PRIMARY KEY,
    WinnerPersonId INTEGER NOT NULL REFERENCES Person(Id),
    LoserPersonId INTEGER NOT NULL REFERENCES Person(Id)
);

我收到此错误:

DbMetal:序列包含多个匹配元素

如果我去掉第二个外键引用,就不会发生错误。

所以,这行得通:

CREATE TABLE Match
(
    Id INTEGER PRIMARY KEY,
    WinnerPersonId INTEGER NOT NULL REFERENCES Person(Id),
    LoserPersonId INTEGER NOT NULL
);

但我确实需要两个“person”列来引用 Person 表。

我为此提交了bug report,但同时我可以使用解决方法。有什么想法吗?

【问题讨论】:

    标签: database sqlite orm dblinq dbmetal


    【解决方案1】:

    我刚刚遇到了同样的问题并创建了一个补丁。我也将它发布在您的bug report。对于其他人,您可以在此处找到补丁:http://pastebin.com/VhNptMqp

    【讨论】:

    • 太好了,FrozenCow,谢谢!有什么方法可以让我获得已编译的 .exe,还是必须下载源代码并粘贴进去?
    • 我最终下载了源代码并进行了修复。像魅力一样工作。再次感谢您的帮助。
    • 啊,抱歉,没有收到有关您的 cmets 的通知。很高兴听到这一切都解决了。
    猜你喜欢
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 2013-06-16
    • 2022-12-23
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多