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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top