Pouze tento týden sleva až 80 % na e-learning týkající se Javy. A zároveň využij akce až 30 % zdarma při nákupu e-learningu - Více informací.
Hledáme koordinátorku kurzů a programátora, 100% home office, 100% flexibilní. Prozkoumej aktuální pozice
Java week
Avatar
Milan Nakonečný:15.12.2015 9:42

Ahoj, pořád nevím, jestli jsem pochopil DTO správně, takže uvedu příklad.

Mám WPF MVVM aplikaci. V ní DataGrid, v kterém chci zobrazit data z databáze. Vytvořím si např třídu s názvem DataService a v ní například tuhle metodu, kterou zavolám pokaždé, když budu chtít získat data z databáze do ObservableCollec­tion, nabindovaný na datagrid. Zároveň v té samé třídě budu provádět další operace s databází a jen vracet kolekce.

public IEnumerable<ReceiptData> GetReceipts()
        {
            using (var dc = CreateDataContext())
            {
                return dc.Receipts.Select(r => new ReceiptData()
                {
                    Id = r.Id,
                    CreatedDate = r.CreatedDate,
                    Items = r.Items.Select(i => new ReceiptItemData()
                    {
                        Id = i.Id,
                        Name = i.Name,
                        PriceListItemId = i.PriceListItemId,
                        UnitPrice = i.UnitPrice,
                        Amount = i.Amount
                    })
                }).ToList();
            }
        }
 
Odpovědět
15.12.2015 9:42
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Marian Benčat:17.12.2015 13:11

DTO je přepravka dat. V softwaru představuje obecně "data", která se pohybují v aplikaci. Jsou to jediné datové schránky, které se mohou pohybovat po jakékoliv vrstvě aplikace - jelikož jsou tak abstraktní, že nejsou závislé na implementaci Frontendu / Backendu / Data Access Layer.

Ve vašem případě máte něco jako servisu a v ní metodu, která vytáhne z DALU (EF) data,.. před vrácením je správně mapujete na obecný objekt (DTO). V tomto ohledu to tedy chápete správně ;-)

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět
17.12.2015 13:11
Totalitní admini..
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 2 zpráv z 2.