IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
N-nojmi
Člen
Avatar
N-nojmi:27.5.2014 20:18

Zdravím,

pracuji na aplikaci(WPF), ke které jsem přidal databázi do projektu a chtěl bych z vytvořené databáze načítat data do DataGridu.

Nečekal jsem, že o proti WF to bude takový rozdíl, může mi někdo poradit, jak na to ? Předem děkuji ;)

Odpovědět
27.5.2014 20:18
Není hloupých lidí, jen lidí co málo používají google...
Avatar
Lako
Člen
Avatar
Odpovídá na N-nojmi
Lako:27.5.2014 21:45

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 obsevablecollec­tion) 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..

 
Nahoru Odpovědět
27.5.2014 21:45
Avatar
N-nojmi
Člen
Avatar
Odpovídá na Lako
N-nojmi:28.5.2014 7:42

Ok, díky vlítnu na to ;)

Nahoru Odpovědět
28.5.2014 7:42
Není hloupých lidí, jen lidí co málo používají google...
Avatar
N-nojmi
Člen
Avatar
Odpovídá na Lako
N-nojmi:28.5.2014 10:26

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?

Nahoru Odpovědět
28.5.2014 10:26
Není hloupých lidí, jen lidí co málo používají google...
Avatar
Odpovídá na N-nojmi
Michal Štěpánek:28.5.2014 11:54

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... :-)

Nahoru Odpovědět
28.5.2014 11:54
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Lako
Člen
Avatar
Odpovídá na N-nojmi
Lako:28.5.2014 21:31

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.

 
Nahoru Odpovědět
28.5.2014 21:31
Avatar
Odpovídá na Lako
Michal Štěpánek:28.5.2014 22:49

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...

Editováno 28.5.2014 22:50
Nahoru Odpovědět
28.5.2014 22:49
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Lako
Člen
Avatar
Odpovídá na Michal Štěpánek
Lako:28.5.2014 23:02

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.

 
Nahoru Odpovědět
28.5.2014 23:02
Avatar
Odpovídá na Lako
Michal Štěpánek:29.5.2014 9:26

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...

Nahoru Odpovědět
29.5.2014 9:26
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Lako
Člen
Avatar
Odpovídá na Michal Štěpánek
Lako:29.5.2014 9:58

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?

 
Nahoru Odpovědět
29.5.2014 9:58
Avatar
Odpovídá na Lako
Michal Štěpánek:29.5.2014 10:32

Vlastní zkušenost, když jsem chtěl přidat EF model, tak mi to nenabízelo CF, ale jen DF...

Nahoru Odpovědět
29.5.2014 10:32
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Lako
Člen
Avatar
Odpovídá na Michal Štěpánek
Lako:29.5.2014 10:34

Co přesně znamená přidat EF model?
Protože když je to codefirst, tak přidáváš třídy..

 
Nahoru Odpovědět
29.5.2014 10:34
Avatar
Milan Křepelka
Tvůrce
Avatar
Odpovídá na Michal Štěpánek
Milan Křepelka:29.5.2014 11:40

Michale : Právě, že když děláš code first, tak žádný model neděláš. Modelem jsou tebou vytvořené třídy.

 
Nahoru Odpovědět
29.5.2014 11:40
Avatar
Odpovídá na Milan Křepelka
Michal Štěpánek:29.5.2014 12:49

A jak mu řeknu, že z těch tříd chci udělat DB? Tím, že přidám EF model CF

Nahoru Odpovědět
29.5.2014 12:49
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Milan Křepelka
Tvůrce
Avatar
Odpovídá na Michal Štěpánek
Milan Křepelka:29.5.2014 13:26

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.

http://www.entityframeworktutorial.net/…example.aspx

 
Nahoru Odpovědět
29.5.2014 13:26
Avatar
Odpovídá na Milan Křepelka
Michal Štěpánek:29.5.2014 14:38

Furt se v tom motám... Musim ještě studovat a opakovat...

Nahoru Odpovědět
29.5.2014 14:38
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Milan Křepelka
Tvůrce
Avatar
Odpovídá na Michal Štěpánek
Milan Křepelka:29.5.2014 14:45

Doporučuji investovat dvě hodinky do videa a jistě najdeš cestu ven.

http://www.wug.cz/…co-je-noveho

 
Nahoru Odpovědět
29.5.2014 14:45
Avatar
Lako
Člen
Avatar
Odpovídá na Michal Štěpánek
Lako:29.5.2014 15:23

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; }
}
 
Nahoru Odpovědět
29.5.2014 15:23
Avatar
Odpovídá na Lako
Michal Štěpánek:29.5.2014 17:21

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... 8-)

Nahoru Odpovědět
29.5.2014 17:21
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 19 zpráv z 19.