Insérer une instruction avec une clause de sortie

J'ai les deux tables suivantes:

Game_Information

gameId(PK) Is Identity(auto-increments) gamePrice name edition date 

Game_Notes

 noteId(PK) Is Identity(auto-increments) notes noteDate gameId(FK) 

J'essaie actuellement de coder une page cshtml dans WebMasortingx qui me permettra d'append des informations sur ma collection de jeux sur deux tables mais j'ai du mal à faire correspondre la gameId sur les deux tables, donc plusieurs notes referencent une partie.

J'ai essayé ce qui suit:

 var id = db.Execute("INSERT INTO Game_Information (gamePrice, name, edition, addedDate) output Inserted.gameId VALUES (@0, @1, @2, @4)", gamePrice, name, edition, date); db.Execute("INSERT INTO Game_Notes(gameId, notes, noteDate) VALUES (@0, @1, @2)", id, notes, noteDate); 

Ce qui place l'information dans les colonnes souhaitées, mais "gameId" inséré dans Game_Notes vaut toujours par défaut "1" au lieu de l'id correct du jeu nouvellement inséré.

J'ai donc essayé ce qui suit:

 db.Execute("INSERT INTO Game_Information (gamePrice, name, edition) output Inserted.gameId, Inserted.date INTO Game_Notes(gameId, noteDate) VALUES (@0, @1, @2)", gamePrice, name, edition); 

Cela insère l'id correct dans "gameId", donc il y a une correspondance entre les deux tables, mais maintenant je suis perdu comme comment get la variable "notes" dans cette même ligne. Faire une seconde insertion est clairement hors et aller pour une mise à jour sur la dernière rangée de la table ne semble pas être une bonne idée.

Quelqu'un at-il des conseils sur ce que je peux faire ici? Je pense que la restructuration de l'insert pour accommoder la variable Notes est la key, mais je continue à bash un mur dessus.

Comme je l'ai dit, la méthode Database.Execute renvoie le nombre d'loggings affectés par l' SQL statement . Donc, vous étiez en train d'insert une ligne et en obtenant 1 en conséquence.

La méthode Execute est utilisée pour exécuter des commands sans requête sur une database, telles que les commands SQL Drop, Create, Delete, Update et Insert. https://msdn.microsoft.com/en-us/library/webmasortingx.data.database.execute(v=vs.111).aspx

Vous avez besoin de la méthode Database.QueryValue qui exécute une requête SQL qui renvoie une seule valeur scalaire comme résultat.

 var id = db.QueryValue(...