私のWCFサービスでは、Entity Framework .NET 4.0を使用しています。データベースには次のテーブルがあります。
CREATE TABLE [dbo].[Tracking](
[TrackingID] [uniqueidentifier] ROWGUIDCOL NOT NULL,
...
CONSTRAINT [PK_Tracking] PRIMARY KEY CLUSTERED
(
[TrackingID] ASC
)
) ON [DATA]
ALTER TABLE [dbo].[Tracking] ADD CONSTRAINT [DF_Tracking_TrackingID] DEFAULT (newid()) FOR [TrackingID]
GO
レコードを挿入すると、エンティティ フレームワークによって TrackingID が "00000000-0000-0000-0000-000000000000" として事前入力されます。フィールド プロパティを Computed および Identity に設定しましたが、そのような幸運はありません。コード スニペットは次のとおりです。
using (var context = new DB.PTLEntities())
{
var tracking = new DB.Tracking();
context.Trackings.AddObject(tracking);
context.SaveChanges();
trackingID = tracking.TrackingID;
}