NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
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
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í
+2,50 Kč
Ř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.