【发布时间】: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