-
自動インクリメントされたIDを使用する場合: 一般的な方法は、データベーステーブルで自動インクリメントされたIDフィールドを使用することです。挿入後、データベースから挿入された行のIDを取得できます。
public async Task<int> InsertData(MyModel model) { using (var connection = new SqlConnection(connectionString)) { await connection.OpenAsync(); var query = "INSERT INTO MyTable (Column1, Column2) VALUES (@Column1, @Column2); SELECT SCOPE_IDENTITY();"; var parameters = new { Column1 = model.Value1, Column2 = model.Value2 }; var insertedId = await connection.ExecuteScalarAsync<int>(query, parameters); return insertedId; } }
この例では、
MyModel
というモデルを持つテーブルMyTable
にデータを挿入しています。SCOPE_IDENTITY()
関数を使用して、挿入された行のIDを取得しています。 -
OUTPUT句を使用する場合: もう1つの方法は、OUTPUT句を使用して挿入された行のIDを取得することです。以下は、この方法を使用した例です。
public async Task<int> InsertData(MyModel model) { using (var connection = new SqlConnection(connectionString)) { await connection.OpenAsync(); var query = "INSERT INTO MyTable (Column1, Column2) OUTPUT INSERTED.Id VALUES (@Column1, @Column2);"; var parameters = new { Column1 = model.Value1, Column2 = model.Value2 }; var insertedId = await connection.ExecuteScalarAsync<int>(query, parameters); return insertedId; } }
この例では、
INSERT INTO
ステートメントの後にOUTPUT INSERTED.Id
を追加して、挿入された行のIDを取得しています。
これらは、.NET Coreで挿入された行のIDを取得するための一般的な方法です。使用するデータベースによってサポートされている方法や、使用しているORM(Object-Relational Mapping)ツールによってさまざまな方法が存在する場合もあります。