Entity Frameworkはgbnの答えに似た何かを実行します:
DECLARE @generated_keys table([Id] uniqueidentifier)
INSERT INTO Customers(FirstName)
OUTPUT inserted.CustomerID INTO @generated_keys
VALUES('bob');
SELECT t.[CustomerID]
FROM @generated_keys AS g
JOIN dbo.Customers AS t
ON g.Id = t.CustomerID
WHERE @@ROWCOUNT > 0
出力結果は一時テーブル変数に格納され、クライアントに戻されます。つかまえを知っている必要があります:
insertは2つ以上の行を生成することができるので、変数は複数の行を保持できるので、複数の ID
私はEFが実際のテーブルに戻ってエフェメラルテーブルを結合する理由がわかりません。
しかし、それがEFの役割です。
SQL Server 2008以降のみ。それが2005なら、あなたは運が悪いです。