DBテーブルproducts
に5列あります。 Id
が主キーです。 SQL Server Management Studioで、あなたは明らかに、ここで、この見ることができます:SQL Serverはキー以外のプロパティに対して「重複キー」エラーを表示しますか?
私はproduct
とId
= 69とName
= "芝生ダーツ" を持っています。 Id
= 420とName
= "Lawn Darts"という新製品を挿入しようとしています。私はアイデンティティの挿入を使用しようとしているので、挿入された製品のIDを指定することができます。名前は同じですが、Idは異なります。これは問題ないはずです。
私はLINQ - > SQLを使用してC#コンソールアプリケーションに挿入しています。私は同じName
で何かが異なるId
を挿入しようとすると、私は次のようなエラーメッセージが出ます:
をユニーク インデックス「IX_Name」のオブジェクト「dbo.Products」には重複するキー行を挿入できません。重複するキー値は(Lawn Darts)です。
なぜ、非キーですか?
あなたは間違いなくあなたの名前]列に一意のインデックス(IX_Name)を持っています。それはエラーです。あなたのテーブルのSSMSで開いているKeysフォルダを見てください。 2番目のエラーは、独自の値をID列に挿入できないことを示しています。それを行うには、これを有効にする必要があります: 'SET IDENTITY_INSERT TableName ON'そして、完了したら' OFF'に設定します。 – rook
@rookうん、あなたは正しい。私はちょうど間違った設定を探していた。通常の列のプロパティを表示するのではなく、列を右クリックして 'Indexes/Keys ... 'をクリックしなければなりませんでした。 'product'が定義されているC#コードでは、明らかに' IsUnique'アノテーションもあります。彼らの最初を見ていたはず... – AlbatrossCafe