Skip to content

Vytvoreni databaze CookBook pomoci dotnet ef

jasho edited this page Oct 9, 2022 · 1 revision

TLDR

Pokud chcete vytvořit databázi pro projekt CookBook, tak potřebujete tyto kroky:

  1. Nastavit Connection String do konfigurace pro projekt CookBook.Api.App. Možnostím nastavení konfigurace pro projekt se věnuje přednáška Inversion of Control, konfigurace, lokalizace. Případně se můžete podívat do dokumentace: https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?tabs=basicconfiguration&view=aspnetcore-6.0#configuration-providers
  2. Nainstalovat CLI nástroj pomocí příkazu dotnet tool install --global dotnet-ef
  3. Ve složce src/CookBook spustit příkaz dotnet ef database update --project "CookBook.Api.DAL.EF" --startup-project "CookBook.Api.App"

Vysvětlení

DbContext a Connection String se můžou nacházet v růzých projektech (a je to běžná praxe).

V CookBook je v projektu CookBook.Api.DAL.EF zachyceno jak bude vypadat databáze (struktura tabulek, vztahy mezi něma atd.) a tedy obsahuje i DbContext pro interakci s databází. Tento projekt je knihovna, která slouží na přístup k datům. Může být sdílena i pro více aplikací (pokud přistupují k stejné databázi se stejnou strukturou tabulek).

Projekt CookBook.Api.App je zase samotná aplikace, která se spouští (a referencuj DAL projekt). Tato aplikace tedy obsahuje mimo jiné v konfiguraci Connection String jelikož se nasazuje a spouští (a tedy běží v kontextu konkrétního PC/prostředí).

Při použití dotnet ef je tedy potřebné specifikovat jednak projekt, který obsahuje datovou vrsvu a DbContext (pomocí parametru --project) a také projekt, za kterého se má vyčíst konfigurace a Connection String (pomocí parametru --startup-project)