質問: connection.Query(sql, people); ``` 私はエラーが発生します: > System.InvalidOperationException:列挙可能な一連のパラメーター(配列、リストなど)はこのコンテキストでは許可されていません > Dapper.SqlMapper.GetCacheInfo(Identity identity、Object exampleParameters、Boolean addToCache) > Dapper.SqlMapper.d__23`1.MoveNext() > ---例外がスローされた前の場所からのスタックトレースの終了--- > > どのようにDapperで複数の挿入されたIDを返すのですか?
回答: どこかでループする必要があります。 1つの行を挿入し、コードをリストに送信するSQL文があります。 SQLの文字列リテラルが気に入っているので、C#にループを入れ、 `SELECT SCOPE_IDENTITY()`を使用してC#内の各IDを回復することで、一度に1人を挿入することに固執します。 @InsertedRowsまたはOUTPUTはもう必要ありません。 本当にSQLでループしたいのであれば、あなたの挿入リストを渡すためのテーブル値のパラメータを調べる必要があるでしょう。 Dapperは複数のIDを返すのは非常にうれしいです。複数の人が入力パラメータとして不平を言っています。 ある日、うまくいけばすぐに、我々は現在、 ヤギの犠牲を見るような文字列リテラルでSQLを振り返るつもりです。