DbMetal задыхается от повторяющихся ссылок на внешние ключи в SQLite - есть идеи? - PullRequest
1 голос
/ 04 мая 2010

Я изо всех сил пытался заставить 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 Ответ

3 голосов
/ 05 мая 2010

У меня была такая же проблема и я создал патч. Я также разместил это в вашем отчете об ошибке . Для других вы можете найти патч здесь: http://pastebin.com/VhNptMqp.

...