Я изо всех сил пытался заставить 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.
Я отправил отчет об ошибке для этого, но тем временем я мог бы использовать обходной путь. Есть идеи?