uniqueidentifier
主キーがで、クラスター化インデックスがタイプ の ID 列であるテーブル スキーマがありますbigint
。
Guid インデックスはフラグメント化される可能性が高く、フラグメント化される場合は、挿入が本当に遅くなるため、クラスター化されたインデックスではないことをお勧めします。つまり、行をできるだけ順番に挿入したいのです。
ただし、クラスター化されたインデックスを EF の概念レイヤーに反映させたくありません。クラスタ化されたインデックスは、単に前述のレコードの物理的な場所であり、プログラマはそれについて何も知る必要はありません。彼らに関する限り、彼らは Guid PK のみを扱っています。そのため、モデルからプロパティを削除しました。
ただし、プロジェクトのコンパイルは、クラスター化されたインデックス列がnull不可であり、デフォルト値がないことを訴えます。これは、ID列であり、デフォルト値を持つこともnull可能にすることもできないことを考えると、どちらも無意味です。
プロジェクトをコンパイルするにはどうすればよいですか?
注: Guid と Sequential Guid と Int Id についての議論はしたくありません。このシステムはスケールアウトできる必要があり、それは私が懸念している Guid PK を意味します。