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.

Другие вопросы по тегам