DbMetal selfs sur les références clés étrangères répétées dans SQLite - des idées?
Question
J'ai du mal à obtenir DbMetal pour traiter ma base de données SQLite. J'ai finalement isolé le problème. Il ne permettra pas à une table d'avoir deux références clés étrangères à la même colonne.
Par exemple, une base de données SQLite avec ces deux tables échouera:
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)
);
je reçois cette erreur:
DbMetal: Séquence contient plus d'un élément d'adaptation
Si je me débarrasser de la deuxième référence clé étrangère, aucune erreur ne se produit.
Alors, cela fonctionne:
CREATE TABLE Match
(
Id INTEGER PRIMARY KEY,
WinnerPersonId INTEGER NOT NULL REFERENCES Person(Id),
LoserPersonId INTEGER NOT NULL
);
Mais je vraiment besoin de deux colonnes « personne » pour faire référence à la table personne.
bug rapport pour cela, mais Je pourrais utiliser une solution de contournement dans l'intervalle. Toutes les idées?
La solution
Je viens d'avoir le même problème et a créé un patch. Je l'ai également posté à votre rapport de bogue . Pour d'autres, vous pouvez trouver ici le patch. http://pastebin.com/VhNptMqp