J'ai utilisé le fournisseur System.Data.SQLite pour mon application. Lorsque j'essaie de créer un nouvel objet et l'insérer dans la base de données, cependant, j'obtiens un SQL syntax error near "SELECT"
.LINQ-to-SQL avec SQLite: erreur de syntaxe près de "SELECT" lors de l'insertion
Fondamentalement, mon code ressemble à:
//supplies is a DataContext connected to my DB
Table<Store> stores = supplies.Stores;
//...
Store newStore = new Store();
// A Store has an Id (pk autoincrement), Name, Number, and EntitySet<Usages>
newStore.Name = "New Store";
newStore.Number = 0;
//...
stores.InsertOnSubmit(newStore);
supplies.SubmitChanges();
mais répartis dans certaines méthodes.
Est-ce un problème commun/débutant? Si oui, qu'est-ce que je fais de mal? Sinon, où/comment dois-je déboguer cela? Je suis plutôt nouveau chez LINQ-to-SQL.
MISE À JOUR: La sortie du journal de la dernière requête générée avant que l'erreur est la suivante:
INSERT INTO [Stores]([Number], [Name])
VALUES (@p0, @p1)
SELECT CONVERT(Int,SCOPE_IDENTITY()) AS [value]
-- @p0: Input Int32 (Size = 0; Prec = 0; Scale = 0) [0]
-- @p1: Input String (Size = 0; Prec = 0; Scale = 0) [New Store]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.4926
Je suis assez sûr que SCOPE_IDENTITY() est spécifique à T-SQL (SQL Server). – GalacticCowboy