今後の参考のための自問自答式の質問:
コンテンツを削除して再度追加したテーブルがある場合、既存の ID と同じ ID を持つ新しい行を挿入するときに、次のエラーが発生する可能性があります。
Server Error in '/' Application.
A duplicate value cannot be inserted into a unique index. [ Table name = Stories,Constraint name = PK__Stories__000000000000001C ]
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.SqlServerCe.SqlCeException: A duplicate value cannot be inserted into a unique index. [ Table name = Stories,Constraint name = PK__Stories__000000000000001C ]
Source Error:
Line 57:
Line 58: Public Sub Save() Implements IStoryRepository.Save
Line 59: context.SaveChanges()
Line 60: End Sub
SQL Server CE は、存在する行と同じ ID (この場合は storyid) を持つ行を挿入しようとしています。
解決策は次のとおりです。
http://msdn.microsoft.com/en-us/library/aa237859(v=sql.80).aspx
次のようになります。
ALTER TABLE Stories ALTER COLUMN storyid IDENTITY (200, 1)
これが意味することは、テーブル (Stories) の ID 列 (この場合は storyid) を変更し、行が現在ある場所よりも大きな数値で開始するように設定することです。たとえば、storyid が最大の行が 170 の場合、次のようにシードできます。
ALTER TABLE Stories ALTER COLUMN storyid IDENTITY (171, 1)
次の挿入のストーリー ID は 171 になり、その後は自動インクリメントされます。
カール