現在、Web サービスを設計しているだけなので、実際のコードはありませんが、これはデータベースとアプリケーションの両方の設計に影響を与える可能性があります。
自動インクリメントであるbigint型の主キーを持つデータベーステーブル(SQL Server内)を用意する予定です。ここで、ADO.NET では、新しいレコードをテーブルに追加するときにこのフィールドを設定しないと想定しています。私が知る必要があるのは、追加されたばかりの ID をどうやって知るかということです。もちろん、そのフィールドで select MAX を実行することもできますが、ADO.NET は実際に新しい ID の値を返し、オーバーヘッドを節約できますか?
たとえば、次のようなコードがあるとします。
using (MyEntities context = new MyEntities())
{
context.Table1.AddObject(new Table1()
{
StringColumn1 = "some value",
StringColumn2 = "some value"
});
context.SaveChanges();
}
テーブル 1 に ID と呼ばれる自動インクリメント PK があった場合、追加されたばかりの値をどのように知ることができますか?