コードをNULL値可能にするインデックスフィールドを変更するエラーだった私は、の最後に次を追加しましたUPメソッドEFの移行:説明フィールドが一意になるように</p> <blockquote> <pre><code> CreateTable( "dbo.Sites", c => new { Id = c.Int(nullable: false, identity: true), Description = c.String(maxLength: 450) }) .PrimaryKey(t => t.Id); </code></pre> </blockquote> <p>を次のように私の最初の移行に
CreateIndex( "dbo.Sites"、 "説明"、一意:true);
後で説明フィールドを必須にすることにしました。
新たなマイグレーションは、以下の変更
AlterColumn( "dbo.Sites"、 "説明"、C => c.String(NULL可能:偽、maxLengthの:450))を生成します。この変更は、私はエラーを取得する実行しようとしたときに
しかし
ALTER TABLE ALTER COLUMNの説明は、1つまたは複数のオブジェクトがこの列にアクセスするために失敗しました。
ALTER TABLE [DBO]。[サイト]を与える
[解説] nvarchar型のNOT NULL列を変更として、私は、プロファイラを使用してSQLラインを分離することができました管理スタジオで実行すると次のエラーが発生する
メッセージレベル5074、レベル16、状態1、行1 インデックス ' IX_Description 'は列' Description 'に依存します。 メッセージレベル4922、レベル16、状態9、行1 ALTER TABLE ALTER COLUMN 1つ以上のオブジェクトがこの列にアクセスしたため、説明に失敗しました。
インデックスを削除してから列を変更してインデックスを再構築するにはどうすればよいですか?
私はおそらく、このようなR2が
null可能な列で一意のインデックスを使用するのが奇妙です。 Nullは他の値と同じ値ですので、1つのレコードだけがNull値を持つことができます。そうでなければ、ユニークな制約違反が発生します。 –
私はNULLだが!= NULLでも、私は最近それを試したとは思わない - それをチェックする価値がある。 – Mark
コンボボックスでは空白を有効なオプションにします。私はそれに対してヌルか空文字列を持っているべきですか? –