Quando si sta salvando un'entità utilizzando EF 6.1, il seguente codice SQL viene generato ed eseguito:Perché Entity Framework 6 non seleziona solo scope_identity() dopo l'inserimento?
exec sp_executesql N'INSERT [dbo].[Customers]([Name], [FirstName])
VALUES (@0, @1)
SELECT [CustomerId]
FROM [dbo].[Customers]
WHERE @@ROWCOUNT > 0 AND [CustomerId] = scope_identity()',N'@0 nvarchar(max) ,@1 nvarchar(max) ',@0=N'Wenk',@1=N'Manuel'
ho capito, che l'inserto/SELECT è fatto, per recuperare il valore del immediatley colonna CustomerID dopo Salvataggio. Per quanto ne so, SCOPE_IDENTITY() restituisce il valore, quindi perché non ci sia qualcosa di simile
SELECT scope_identity()
invece di tutta quella roba che richiedono letture fisiche?
Cheers, Manuel
Non una risposta alla tua domanda, ma si consiglia di utilizzare i tipi di dati più appropriato di 'nvarchar (max)' per le colonne come "nome" e "FirstName" –
Forse è quello di ottenere un risultato con il corretto tipo di dati della colonna . –