1

我一直在努力让 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
);

但我真的需要两个“人”列来引用人表。

我为此提交了一份错误报告,但同时我可以使用一种解决方法。有任何想法吗?

4

1 回答 1

3

我只是遇到了同样的问题并创建了一个补丁。我也在你的错误报告中发布了它。对于其他人,您可以在此处找到补丁:http: //pastebin.com/VhNptMqp

于 2010-05-05T15:59:38.650 回答