UPDATE : EntityFramework 6.1 では[Index]
、任意のフィールドのインデックスを指定するために使用できる属性が導入されました。例:
public class MessageModel
{
[Index(IsClustered = true, IsUnique = false)]
public long Timestamp { get; set; }
}
古いバージョンの Entity Framework については、元の回答を以下に残します。
残念ながら、EFは実際にはインデックスをあまりサポートしていません。これにアプローチする最善の方法は、実行している移行の種類によって異なります。自動移行を使用しておらず、新しいテーブル (つまり、移行対象のテーブル) にインデックスを追加する場合は、移行で生成された CreateTable ステートメントを変更してインデックスを追加できます。この手法は、Entity Framework チュートリアルの 1 つで使用されています (Index を検索して見つけてください)。
自動移行を使用している(またはテーブルが既に存在する)場合でも、古いスタイルの SQL を使用してインデックスを作成できます。移行を生成してから、コードを変更してプレーンな古いCREATE INDEX
ステートメントを含めます。