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.
Podmí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.
Skupiny 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.
Podmí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.
Parametry
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.
Použ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
Použ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 |
Vysvětluje, kde můžete přidat dotaz v uživatelském rozhraní aplikace Visual Studio LightSwitch. |
|
Popisuje, jak lze definovat podmínky filtru, parametry a podmínky řazení dotazu pomocí vizuálního návrháře. |
|
Popisuje, jak povolit uživatelům zadání hodnoty pro parametr dotazu. |
|
Popisuje, jak změnit dotaz způsoby, které překračují možnosti návrháře. |
|
Popisuje způsob zpracování událostí, které nastanou před a po spuštění dotazu. |
|
Popisuje, jak načíst a spustit dotaz pomocí kódu. |
|
Popisuje vlastnosti a prvky dotazů.Hodnoty těchto vlastností můžete nastavit v okně Vlastnosti. |