EF Model first   zodpovězená otázka

Entity Framework

Zdravím,

navrhl jsem si Db pomocí EF(model first) a chtěl bych přidat pár indexů, což jak jsem pochopil je celkem problém v případě model first. Takže mě napadlo, že je tam přidám natvrdo pomocí sql query.

Zajíma mě tedy, kdybych to tak udělal, jestli o tom musí vědět EF, jestli třeba na základě nich generuje sql dotazy.

Pak bych teda musel použít database first, abych do EF ty indexy dostal. Nejspíš jsem to měl navrhnou v nějakém jiném nástroji i s indexy a použít EF database first na ORM.

Co myslíte?

S díky,

JF

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já vždy navrhuji nejdřív databázi a z ní potom nechám vygenerovat objekty. Tomu druhému způsobu nedůvěřuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

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.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud je to reakce na můj příspěvek, já pouze konstatuji, že nemám důvěru v nástroje, které na základě návrhu něčeho generují skutečnou věc (nevím jak to lépe popsat). Příkladem budiž generování databáze na základě objektového modelu, nebo generování tříd na základě jejich schématu. S takovými hnoji jsem si užil dost.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Není, jen obecná odpověď na původní dotaz.

S tím generování databáze naprosto souhlas. Můj postup je vždy také nejprve navrhnout databázi a teprve potom si vygenerovat objekty pro přístup z EF (pokud chci EF použit).

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback