J'ai eu du mal à faire en sorte que DbMetal traite 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 de clé étrangère à la même colonne.DbMetal étouffe sur des références de clés étrangères répétées dans SQLite - des idées?
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: Sequence contains more than one matching element
Si je me débarrasser de la deuxième référence clé étrangère, aucune erreur ne se produit .
Ainsi, cela fonctionne:
CREATE TABLE Match
(
Id INTEGER PRIMARY KEY,
WinnerPersonId INTEGER NOT NULL REFERENCES Person(Id),
LoserPersonId INTEGER NOT NULL
);
Mais je vraiment besoin les deux colonnes "personne" pour faire référence à la table de personne.
J'ai soumis un bug report pour cela, mais je pourrais utiliser une solution de contournement pendant ce temps. Des idées?
Super, FrozenCow, merci! Est-il possible de mettre la main sur un .exe compilé ou dois-je télécharger la source et la coller? – devuxer
J'ai fini par télécharger la source et mettre vos corrections. Travaillé comme un charme. Merci encore pour votre aide. – devuxer
Ah, désolé, n'a pas été averti de vos commentaires. Bon d'entendre tout cela a fonctionné. – FrozenCow