非常に単純な構造です。Entity Frameworkでユニークインデックスを追加するとデータテーブルの表示が妨げられる
は罰金働いていたが、私はそうのような複合一意のインデックスを追加することによって、一意性を強制したい:私はその後、削除
:私はそれがエラーを生成する新しいレコードを入力するときは、この後
CreateIndex("dbo.Fixtures", new[] { "MarketId", "BookName", "CoupName" }, unique: true, name: "IX_UniqueFixture");
を新しく追加された索引を削除し、索引が追加された後に追加されたレコードを削除し、索引の追加に先立つレコードを表示しました。
エラーメッセージの下に示すレコードが前の添加に存在していたレコードである:私はそれが同じエラーに戻し、新しいレコードとデータベースを更新するために、再度試みが
、前述の指数。ように、親ルックアップテーブルId列を再播種後の今
- それは
USE [aspnet-Arb-20160906102730]
に動作しますGO
DBCC CHECKIDENT( 'ExchangeTypes'、RESEED、7) GO
、それが再び可能に私は、新しいレコード
そうでを追加します私はレコードの表示を可能にするために、ユニークなコンポジットインデックスを追加することによって、データテーブルの混乱から回復することができました。
しかし、なぜこれが起こっているのか困惑しています。そして私はまだ一意性を徹底させたいと思っています。たぶん私は3つのフィールドを1つのフィールドに連結し、いくつかのフィールドではなく単一のフィールドにインデックスを持つ一意性を強制して、それがデータテーブルの表示に干渉しないかどうかを調べるかどうかを確認します。
EDIT:1つのフィールドの索引で一意に試しましたが、それでも同じエラーが表示されます。親ルックアップフィールドにユニークなインデックスを適用しても、データテーブルは機能しませんが、子テーブルで同じことを試みることはありません。