Database DbMetal在SQLite中被重复的外键引用阻塞了-有什么想法吗?

Database DbMetal在SQLite中被重复的外键引用阻塞了-有什么想法吗?,database,sqlite,orm,dblinq,dbmetal,Database,Sqlite,Orm,Dblinq,Dbmetal,我一直在努力让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 REFERE

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


我为此提交了一个解决方案,但在此期间我可以使用一个解决方案。有什么想法吗?

我只是遇到了同样的问题并创建了一个补丁。我也把它贴在了你的网站上。对于其他人,您可以在这里找到补丁:。

太好了,弗罗森科,谢谢!有什么方法可以让我得到一个已编译的.exe,或者我必须下载源代码并粘贴进去吗?我最终下载了源代码并加入了你的修复程序。工作得很有魅力。再次感谢您的帮助。啊,对不起,没有收到有关您评论的通知。很高兴听到一切都解决了。