Warum kann Dapper nicht mehrere eingefügte Zeilen-IDs zurückgeben?
Ich habe eine SQL Server-Tabelle, in die Zeilen eingefügt werden:
var sql = @"
DECLARE @InsertedRows AS TABLE (Id BIGINT);
INSERT INTO Person ([Name], [Age]) OUTPUT Inserted.Id INTO @InsertedRows
VALUES (@Name, @Age);
SELECT Id FROM @InsertedRows;";
Person person = ...;
var id = connection.Query<long>(sql, person).First();
Dies funktioniert jedoch gut, wenn ich versuche, mehrere Elemente einzufügen und alle eingegebenen IDs mit folgendem Befehl zurückzugeben:
IEnumerable<Person> people = ...;
var ids = connection.Query<long>(sql, people);
Ich erhalte eine Fehlermeldung:
System.InvalidOperationException: Eine enumerable Folge von Parametern (Arrays, Listen usw.) ist in diesem Kontext nicht zulässig.
at Dapper.SqlMapper.GetCacheInfo (Identity identity, Object exampleParameters, Boolean addToCache)
at Dapper.SqlMapper.d__23`1.MoveNext ()
--- Ende der Stapelverfolgung von der vorherigen Position, an der die Ausnahme ausgelöst wurde ---
Wie würde man in Dapper mehrere eingefügte IDs zurückgeben?