Ceci est ma première base de données SQLiteDbLinq DbMetal - « La clé donnée était absente dans le dictionnaire » lors de l'ajout clé étrangère
CREATE TABLE [Categories] (
[ParentId] INT,
[Name] VARCHAR(100));
CREATE TABLE [Fees] (
[CategoryId] INT,
[Name] VARCHAR(100),
[Value] VARCHAR(50),
[Info] VARCHAR(200));
CREATE TABLE [Markups] (
[CategoryId] INT,
[UpTo] MONEY,
[Value] VARCHAR(50),
[Info] VARCHAR(200));
Si je cours DbMetal /provider:Sqlite /conn "Data Source=bms4.db3" /dbml:Model.dbml
, il va créer avec succès le fichier dbml.
Mais si j'ajoute une clé étrangère, telle que
CREATE TABLE [Fees] (
[CategoryId] INT CONSTRAINT [fk_fees_categories] REFERENCES [Categories]([rowid]),
[Name] VARCHAR(100),
[Value] VARCHAR(50),
[Info] VARCHAR(200));
L'exécution de la même commande
DbMetal /provider:Sqlite /conn "Data Source=bms4.db3" /dbml:Model.dbml
donnera cette erreur:
>>> Reading schema from SQLite database
DbMetal: The given key was not present in the dictionary.
Comment puis-je introduire un étranger Relation clé dans le DBML?
Vous avez raison, je dois ajouter explicitement un champ d'auto-incrémentation . Pourquoi ROWID ne fonctionne-t-il pas? – Aximili