2010-05-03 1 views
1

Я пытаюсь получить 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: Sequence contains more than one matching element

Если я избавлюсь от второй ссылке внешнего ключа, не происходит никакой ошибки ,

Таким образом, это работает:

CREATE TABLE Match 
(
    Id INTEGER PRIMARY KEY, 
    WinnerPersonId INTEGER NOT NULL REFERENCES Person(Id), 
    LoserPersonId INTEGER NOT NULL 
); 

Но мне действительно нужно как "лицо" столбцы ссылки на таблицу Person.

Для этого я отправил bug report, но я мог бы использовать обходной путь за это время. Есть идеи?

ответ

3

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

+0

Отлично, FrozenCow, спасибо! Есть ли способ, которым я могу получить сжатый файл .exe или мне нужно загрузить источник и вставить его? – devuxer

+0

Я закончил загрузку источника и внесение исправлений. Работал как шарм. Еще раз спасибо за помощь. – devuxer

+0

Ах, извините, не получил уведомления о ваших комментариях. Приятно слышать, как все это получилось. – FrozenCow