我一直在努力让 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
);
但我真的需要两个“人”列来引用人表。
我为此提交了一份错误报告,但同时我可以使用一种解决方法。有任何想法吗?