Diskuze: DataGrid načtení dat z databáze
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 19 zpráv z 19.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Nejlépe asi:
používej návrhový vzor MVVM, nebo alespoň využívej..
Vytvoř si model a viewModel.
Model ti reprezentuje databázi.
Viemodel ti přenáší data do zobrazení (xamlu)
Při vytváření viemodelu, načti data z databáze.
V datagridu nastav databinding na list (nebo lépe obsevablecollection) na
vlastnost ve viewModelu.
jestli to chceš udělat rychle a nezabývat se mvvm příliš (což ale stejně
budeš časem muset), tak si vytvoř proměnnou Customers, do té narvi data a
udělej:
<DataGrid ItemsSource="{Binding Customers}" />
samo ti to vygeneruje sloupečky, atd..
Co bude lepší, vytvořit si databázi přímo v projektu a nebo ji vytvořit v sql server management studiu a pak jí tam přesunout?
To záleží na tom, kde tu DB chceš mít, jestli jako soubor u aplikace,
nebo jestli na nějakém SQL serveru na jiném stroji...
Pokud lokálně, pak je zbytečné ji tvořit mimo visual studio a pak ji
přesouvat, je lepší s ní rovnou pracovat ve VS...
Pokud budeš používat entity framework (což vřele doporučuji) a codefirst přístup, tak tohle moc řešit nemusíš, vlastně se k db vůbec nedostaneš, z pohledu přístupu tě nezajímá, kde si plave. Jde jenom o to mít správný connection string a správného data providera.
To ale není odpověď na jeho otázku, že? Musíš si nejdříve určit, kde ta DB bude a pak teprve budeš řešit přístup...
No, nemusíš.
Prostě uděláš apku s databází na lokále (třeba) a když bys chtěl aby
to pracovalo se vzdálenou, tak jen změníš connection string. To je právě
výhoda výše popsaného přístupu.
V podstatě máš pravdu, ale když máš jako já VS express, tak tam codefirst použít nejde, musíš použít databasefirst a pak už to je o tom, že si umístění DB musíš nejprve vybrat...
Ok, to by bylo logické. Ale to že nejde codefirst v express edici mi přijde divné. Jak jako nejde? Vždyť to je všechno v kódu, nikde nespecifikuješ jaký přístup chceš vlastně použít. Prostě si vytvoříš třídy, označíš je jako dbsety a je to..? Nějaký blogpost, či dokumentace, která by tvojí domněnku potvrzovala?
Vlastní zkušenost, když jsem chtěl přidat EF model, tak mi to nenabízelo CF, ale jen DF...
Co přesně znamená přidat EF model?
Protože když je to codefirst, tak přidáváš třídy..
Michale : Právě, že když děláš code first, tak žádný model neděláš. Modelem jsou tebou vytvořené třídy.
A jak mu řeknu, že z těch tříd chci udělat DB? Tím, že přidám EF model CF
Tak ještě jednou. Opakování je matka moudrosti. Při přístupu code first žádný model neděláš. Tečka.
Co se tvé otázky týče, tak se to dělá tak, že ty třídy uvedeš ve tvé třídě databázového kontextu.
Furt se v tom motám... Musim ještě studovat a opakovat...
Doporučuji investovat dvě hodinky do videa a jistě najdeš cestu ven.
Model == třída
Definice "tabulek" se provádí následovně:
public class MůjDbContext:DbContext
{
public DbSet<Car> Cars { get; set; }
public DbSet<Cat> Cats { get; set; }
}
No vidíš, zase jsem o něco moudřejší...
Musím to už konečně pořádně nastudovat, protože zatím mě to EF pořád
nějak míjí a nemůžu do toho proniknout...
Zobrazeno 19 zpráv z 19.