Sdílet prostřednictvím


Dotazy: Načítání informací ze zdroje dat

Dotaz vrací data, která odpovídají sadě kritérií.Například pokud chcete vědět, kolik zákazníků žije v USA, vytvořte dotaz, který prohledá seznam zákazníků a zkontroluje, jakou zemi nebo oblast mají zadánu v adrese.

Můžete vytvořit dotazy a uložit je do modelu aplikace.Potom můžete zadat kritéria vyhledávání pomocí návrháře dotazů.Pokud Návrhář dotazu neobsahuje funkce, které potřebujete, můžete dotazy rozšířit napsáním specifického kódu.Po zadání kritérií použijte dotazy na obrazovce nebo je spusťte jako součást obchodní logiky.

Vytvoření dotazu

Můžete vytvořit dotazy v Průzkumníku řešení.Dotaz je založen pouze na jedné entitě nebo tabulce v modelu vaší aplikace (například na entitě Customer ).Dotaz může rovněž vycházet z jiných dotazů v modelu vaší aplikace.Entita, tabulka nebo dotaz, na kterých je dotaz založen, se souhrnně nazývají zdrojová dotazu.Další informace naleznete v tématu Jak: přidat, odebrat a upravit dotaz.

Návrh dotazu pomocí Návrháře dotazů

Ve většině případů můžete navrhnout dotaz vizuálně pomocí návrháře dotazu.Podmínky filtru a skupiny filtrů, podmínky řazení a parametry můžete přidat do dotazu provedením výběru v návrháři.Další informace naleznete v tématu Jak: návrhu dotazu pomocí Návrháře dotazu.

Ee256728.collapse_all(cs-cz,VS.110).gifPodmínka filtru

Podle potřeby můžete výsledky dotazu omezit přidáním jedné nebo více podmínek filtru.Podmínka filtru popisuje pravidlo, které musí splňovat každý řádek dat.Řádky, které splňují pravidlo, jsou zahrnuty ve výsledcích dotazu.Podmínka filtru obsahuje následující tři základní části:

  • Vlastnost výběru

  • Hodnota porovnání

  • Operátor

Vlastnost výběru je vlastnost, kterou chcete použít jako základ pro podmínku filtru.Chcete-li například vrátit prodejní objednávky, které mají určité datum objednávky, můžete jako vlastnost výběru použít vlastnost OrderDate.Vlastnost výběru může být vlastnost ve zdrojových datech nebo vlastnost související entity nebo tabulky.V návrháři dotazu se zobrazí vlastnosti pouze pro související entity nebo tabulky s velkým počtem relací typu 0:1 nebo 1.Prodejní objednávka má například pouze jednoho zákazníka.V dotazu, který vrací prodejní objednávky, proto můžete vybrat vlastnosti souvisejícího zákazníka jako součást podmínky filtru.Chcete-li použít vlastnost související entity nebo tabulky, které jsou mnohonásobné, je třeba dotaz rozšířit pomocí kódu.

Hodnota porovnání je porovnána s vlastností výběru.Hodnota porovnání může být hodnota literálu, například řetězec "22/9/2009 12:00:00 dop.", vlastnost výběru, parametr nebo relativní hodnota, například Nyní, Dnes nebo Začátek týdne.

Operátor je symbol, který určuje typ porovnání, které chcete provést.Chcete-li například, aby byly vráceny prodejní objednávky, u kterých spadá datum objednávky před 22/9/2009 12:00:00 dop., vyberte operátor „<“.

Úplná podmínka filtru popisovaná v tomto příkladu: Where OrderDate < 9/22/2009 12:00:00 AM

Vztah podmínky filtru k jiným podmínkám filtru lze nastavit pomocí jednoho z následujících logických operátorů: And, Or, And Not, Or Not.

Podle potřeby můžete změnit pořadí podmínek jejich přetažením do požadované pozice v návrháři.

Následující obrázek znázorňuje části podmínky filtru.

Podmínky filtru v dotazu

Ee256728.collapse_all(cs-cz,VS.110).gifSkupiny filtrů

Podmínky filtru můžete seskupit dohromady tak, aby byly vyhodnocovány jako jedna jednotka, která je oddělená od zbývajících podmínek filtru.Chcete-li to provést, vytvořte v návrháři dotazu skupinu filtrů.

Seskupení podmínek filtru si můžete představit jako používání závorek ve výrazech v matematických rovnicích nebo logických tvrzeních.Při seskupování podmínek platí logický operátor, který se zobrazuje před první podmínkou ve skupině, pro celou skupinu.

Stejně jako v případě jednotlivých podmínek filtru můžete změnit pořadí skupin filtrů jejich přetažením do požadované pozice v návrháři.

Následující obrázek znázorňuje dvě skupiny filtru.

Filtr skupiny v dotazu

Ee256728.collapse_all(cs-cz,VS.110).gifPodmínky řazení

Přidáním jedné nebo více podmínek řazení můžete určit výchozí pořadí, ve kterém se budou záznamy zobrazovat ve výsledcích dotazu.Podmínka řazení obsahuje vlastnost a směr (například OrderDate a Ascending).Podmínky řazení definují výchozí pořadí řazení záznamů, které se zobrazí na obrazovce.Uživatelé mohou zobrazit záznamy v jiném pořadí provedením výběrů na obrazovce uživatelského rozhraní (UI).V návrháři dotazu můžete změnit pořadí podmínek řazení jejich přetažením do požadované pozice v seznamu.

Ee256728.collapse_all(cs-cz,VS.110).gifParametry

Uživatelům můžete povolit dynamicky filtrovat výsledky dotazu.Můžete například uživateli výběrem určité prodejní oblasti na obrazovce povolit zobrazení regionálních prodejních objednávek.Pro účely podpory tohoto scénáře přidejte parametr do dotazu a odpovídajícím způsobem dotaz pojmenujte (například SalesTerritory).Potom nastavte hodnotu porovnání filtru na parametr.Výraz dotazu může mít například takovouto podobu: Where TerritoryID = SalesTerritory.

Můžete navrhnout obrazovky, které umožňují uživatelům zadat hodnotu parametru v době běhu.Další informace naleznete v tématu Jak: zadat hodnotu parametru dotazu.

Rozšíření dotazu pomocí kódu

Návrhář dotazu nepodporuje některé typy podmínek filtru.Pokud v návrháři narazíte na omezení, můžete do dotazu přidat podmínky pomocí kódu.

[!POZNÁMKA]

Dotaz obrazovky nelze rozšířit.Lze rozšířit pouze dotazy, které se zobrazují v Průzkumníku řešení.Další informace o úpravách dotazu obrazovky viz Postupy: Filtrování dat na obrazovce aplikace Silverlight

Následující tabulka obsahuje dvě podmínky filtru, které nelze vytvořit pomocí návrháře dotazu.

Podmínka filtru

Důvod použití kódu

Vrátí 10 nejdůležitějších zákazníků na základě počtu prodejních objednávek.

Chcete-li zjistit určit počet prodejních objednávek, je nutné použít operaci Count.Operace, například Count, Aggregate a Sum, nejsou k dispozici v návrháři dotazu.

Vrátí všechny zákazníky, kteří zakoupili kolečko.

Chcete-li zjistit, zda zákazník zakoupil kolečko, je nutné použít podmínku filtru, která odkazuje na entitu Product.Vzhledem k tomu, že jeden zákazník může být přiřazen k několika produktům, existovala by pravděpodobně entita Product v relaci Customer-Product na straně N.Návrhář dotazu neumožňuje přejít v relaci na stranu N.

Chcete-li vyřešit toto omezení, můžete přidat vlastní kód pro metodu, která je volána při spuštění dotazu.Další informace naleznete v tématu Jak: dotaz rozšířit pomocí kódu.

V kódu můžete definovat podmínky filtru pomocí standardní syntaxe LINQ.Při spuštění dotazu, jsou k získání výsledku dotazu podmínky, které definujete v návrháři, zkombinovány s podmínkami, které definujete v kódu.

Podmínky, které definujete v kódu, se nezobrazí jako podmínky filtru v návrháři dotazu.Podobně platí, že podmínky filtru, které přidáte pomocí návrháře dotazu, se nezobrazí v metodě.Chcete-li do dotazu přidat parametr, můžete to provést pouze pomocí návrháře dotazu.Parametry, které jste přidali pomocí návrháře dotazu, se zobrazí v seznamu parametrů metody.

Použití dotazu

Můžete použít dotaz na obrazovce nebo ho spustit v kódu jako součást obchodní operace.

Ee256728.collapse_all(cs-cz,VS.110).gifPoužití dotazu na obrazovce

Můžete vytvořit obrazovku, která bude založena na vlastním dotazu (například obrazovku, na které se bude zobrazovat seznam zákazníků, kteří se nacházejí v USA).Další informace naleznete v tématu Postupy: Vytvoření obrazovky v aplikaci Silverlight.

Na obrazovku můžete přidat více dotazů.Můžete například navrhnout dotaz, který zobrazí seznam prodejních objednávek pro určitého zákazníka.Tento dotaz můžete přidat na obrazovku Zákazník.Potom můžete povolit uživateli, aby vybral zákazníka, pro kterého chce zobrazit všechny související prodejní objednávky.Další informace o tom, jak dosáhnout tohoto výsledku, viz Jak: zadat hodnotu parametru dotazu

Ee256728.collapse_all(cs-cz,VS.110).gifPoužití dotazu v kódu

Dotazy můžete načíst z modelu aplikace a potom je spustit v kódu.To umožňuje pracovat s cílenými kolekcemi dat v rámci obchodní logiky aplikace.Další informace naleznete v tématu Jak: načíst Data z dotazu pomocí kódu.

Příbuzná témata

Title

Description

Jak: přidat, odebrat a upravit dotaz

Vysvětluje, kde můžete přidat dotaz v uživatelském rozhraní aplikace Visual Studio LightSwitch.

Jak: návrhu dotazu pomocí Návrháře dotazu

Popisuje, jak lze definovat podmínky filtru, parametry a podmínky řazení dotazu pomocí vizuálního návrháře.

Jak: zadat hodnotu parametru dotazu

Popisuje, jak povolit uživatelům zadání hodnoty pro parametr dotazu.

Jak: dotaz rozšířit pomocí kódu

Popisuje, jak změnit dotaz způsoby, které překračují možnosti návrháře.

Jak: zpracování událostí dotazu

Popisuje způsob zpracování událostí, které nastanou před a po spuštění dotazu.

Jak: načíst Data z dotazu pomocí kódu

Popisuje, jak načíst a spustit dotaz pomocí kódu.

Odkaz: Vlastnosti Návrhář dotazu

Popisuje vlastnosti a prvky dotazů.Hodnoty těchto vlastností můžete nastavit v okně Vlastnosti.