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

Diskuze: Data Transfer Object vysvětlení

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

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