EF žádnou informaci o indexech nemá a při generování dotazů nevyužívá. Je mu tedy úplně jedno jak indexy v databázi vzniknou. V praxi používáte obvykle jednu z těchto variant: 1) Používáte code first (nebo model first) ve variantě, kdy si databázi necháváte vždy znovu vygenerovat (a kódem do ní např. generujete i testovací data apod.). V praxi dost okrajový případ, který se hodí asi pouze na přípravu databáze pro automatizované unit testy nebo jen v úvodní fázi, kdy začínáte code first a navrhujete model. Pak obvykle přejdete v variantě 2 nebo 3. V tomto případě indexy asi řešit nebudete, ale jinak není problém jejich vytvoření přidat do inicializátoru databáze. 2) Databázi již máte a udržujete (ručně nebo jinak) mimo EF. Změny děláte ručně jak v samotné db tak v modelu (nezávisle). Pak indexy do db přidáte libovolným způsobem, EF modelu se to netýká a není s tím problém. V praxi nejčastější případ. 3) Požíváte EF Migration (řízený způsob udržování revizí schématu databáze). V takovém případě vytváření indexů zahrnete do kódu provádějící upgrade databáze.
|