SQL Server Compact で主キー フィールドを自動インクリメントと ID として設定しました。新しいレコードを挿入するときに、ID 値を入力せず、null として渡します。しかし、アプリケーションを実行すると、次のエラーが発生します。
「サーバーで生成されたキーとサーバーで生成された値は、SQL Server Compact ではサポートされていません。」
SQL Server Compact で主キー フィールドを自動インクリメントと ID として設定しました。新しいレコードを挿入するときに、ID 値を入力せず、null として渡します。しかし、アプリケーションを実行すると、次のエラーが発生します。
「サーバーで生成されたキーとサーバーで生成された値は、SQL Server Compact ではサポートされていません。」
SQL Compact 3.5 では、Entity Framework を使用する場合は int IDENTITY がサポートされないため、ID として Guid を使用する必要があります。ただし、int は SQL Compact 4.0 で動作します。
このエラーを回避するには、挿入の ID 列をそのままにしておく必要があります。3 つの COLUMN を持つ TABLE がある場合は、次のように挿入を行う必要があります: TABLE 宣言:
CREATE TABLE Books
(
ID INT IDENTITY,
Name NVARCHAR(200),
PublishYear DATETIME
)
次のようにレコードを挿入します。
INSERT INTO Books (Name, PublishYear)
VALUES (N'Boof-e koor', '1937-10-28 12:30:00.000')
繰り返しますが、挿入ステートメントで INDENTITY 列について言及してはなりません。