DbMetal подавляет повторяющиеся ссылки на внешние ключи в SQLite - есть идеи?
Я изо всех сил пытался заставить 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.
Я отправил отчет об ошибке для этого, но в то же время я мог бы использовать обходной путь. Есть идеи?
1 ответ
У меня просто была такая же проблема и я создал патч. Я также разместил это в вашем отчете об ошибке. Для других вы можете найти патч здесь: http://pastebin.com/VhNptMqp.