Query: recupero di informazioni da un'origine dati
È possibile utilizzare una query per restituire i dati corrispondenti a un insieme di criteri.Ad esempio, se si desidera conoscere il numero di clienti che vive negli Stati Uniti, è possibile creare una query che esegua la scansione di un elenco di clienti e controlli il paese specificato nel relativo indirizzo.
È possibile creare query e salvarle nel modello dell'applicazione.È quindi possibile specificare i criteri di ricerca utilizzando Progettazione query.Se la finestra Progettazione query non fornisce le funzionalità necessarie, è possibile estendere le query scrivendo del codice.Dopo aver specificato i criteri, utilizzare le query in una schermata o eseguirle come parte della logica aziendale.
Creazione di una query
È possibile creare query in Esplora soluzioni.Una query è basata su una sola entità o tabella nel modello dell'applicazione (ad esempio, un'entità Customer).Una query può essere basata anche su altre query nel modello dell'applicazione.L'entità, la tabella o la query su cui si basa la query, viene chiamata origine dati della query.Per ulteriori informazioni, vedere Procedura: aggiungere, rimuovere e modificare una query.
Progettazione di una query tramite la progettazione query
Nella maggior parte dei casi, è possibile progettare visivamente una query tramite la progettazione query.Aggiungere condizioni di filtro e gruppi di filtro, termini di ordinamento e parametri a una query selezionandoli dalla finestra di progettazione.Per ulteriori informazioni, vedere Procedura: progettare una query utilizzando Progettazione query.
Condizioni di filtro
È possibile restringere i risultati di una query aggiungendo una o più condizioni di filtro.Una condizione di filtro consente nel descrivere una regola che deve essere soddisfatta da ogni riga di dati.Le righe che sono conformi alla regola sono incluse nei risultati della query.Una condizione di filtro contiene le tre seguenti parti di base:
Una proprietà di selezione
Un valore di confronto
Un operatore
Una proprietà di selezione è la proprietà da utilizzare come base della condizione di filtro.Ad esempio, per restituire ordini di vendita che hanno una determinata data dell'ordine, è possibile utilizzare OrderDate come proprietà di selezione.Una proprietà di selezione può essere una proprietà nei dati di origine o una proprietà in una correlata entità o tabella.Nella progettazione query le proprietà vengono visualizzate solo per le correlate entità o tabelle che dispongono di una molteplicità di zero a uno o uno.Ad esempio, un ordine di vendita dispone di un solo cliente.Pertanto, in una query tramite cui vengono restituiti ordini di vendita, è possibile selezionare le proprietà del cliente correlato come parte di una condizione di filtro.Se si desidera utilizzare una proprietà su un'entità o tabella correlata che dispone di una molteplicità Molti, è necessario estendere la query tramite codice.
Il valore di confronto viene confrontato con la proprietà di selezione.Un valore di confronto può essere un valore letterale quale la stringa "9/22/2009 12:00:00 AM", una proprietà di selezione, un parametro o un relativo valore, ad esempio Ora, Oggi o Inizio della settimana.
Un operatore è un simbolo tramite cui viene specificato il tipo di confronto che si desidera eseguire.Ad esempio, per restituire ordini di vendita per i quali la data dell'ordine è precedente al "9/22/2009 12:00:00 AM", si seleziona l'operatore "<".
La condizione di filtro completa descritta in questo esempio è Where OrderDate < 9/22/2009 12:00:00 AM.
È possibile correlare una condizione di filtro alle altre condizioni di filtro tramite uno degli operatori logici seguenti: And, Or, And Not, Or Not.
È possibile modificare l'ordine delle condizioni trascinandole nelle posizioni desiderate nella finestra di progettazione.
Nell'illustrazione che segue vengono mostrate le parti di una condizione di filtro.
Gruppi di filtri
È possibile raggruppare condizioni di filtro insieme in modo che vengano valutate come una sola unità separata dal resto delle condizioni di filtro.A tale scopo, creare un gruppo di filtri nella progettazione query.
Il raggruppamento delle condizioni di filtro corrisponde all'inserimento delle parentesi attorno a un'espressione in un'equazione matematica o in un'istruzione logica.Quando si raggruppano le condizioni, l'operatore logico visualizzato prima della prima condizione in un gruppo viene applicato all'intero gruppo.
Analogamente alle condizioni di filtro singole, è possibile modificare l'ordine dei gruppi di filtri trascinandoli nella posizione desiderata nella finestra di progettazione.
Nell'illustrazione che segue vengono mostrati due gruppi di filtri.
Termini di ordinamento
È possibile specificare l'ordine predefinito in base al quale i record vengono visualizzati nei risultati di una query aggiungendo uno o più termini di ordinamento.In un termine di ordinamento sono contenute una proprietà e una direzione (ad esempio, OrderDate e Ascending).I termini di ordinamento consentono di definire l'ordinamento predefinito dei record visualizzati in una schermata.Gli utenti possono visualizzare i record in un ordine diverso selezionandoli nell'interfaccia utente della schermata.Nella progettazione query è possibile modificare l'ordine dei termini di ordinamento trascinandoli nella posizione desiderata nell'elenco.
Parametri
È possibile consentire agli utenti di filtrare dinamicamente i risultati della query.Ad esempio, è possibile consentire a un utente di visualizzare gli ordini di vendita di un'area selezionando un territorio di vendita specifico in una schermata.Per supportare questo scenario, aggiungere un parametro a una query e assegnare alla query un nome appropriato (ad esempio, SalesTerritory).Impostare il valore di confronto di un filtro sul parametro.Ad esempio, l'espressione di query potrebbe essere Where TerritoryID = SalesTerritory.
È possibile progettare schermate che consentono agli utenti di fornire il valore del parametro in fase di esecuzione.Per ulteriori informazioni, vedere Procedura: fornire un valore a un parametro di query.
Estensione di una query tramite il codice
Alcuni tipi di condizioni di filtro non sono supportati dalla progettazione query.In caso di limitazione nella finestra di progettazione, è possibile aggiungere condizioni alla query tramite codice.
[!NOTA]
Non è possibile estendere la query di una schermata.È possibile estendere solo le query visualizzate in Esplora soluzioni.Per ulteriori informazioni sulla modifica della query di una schermata, vedere Procedura: filtrare i dati in una schermata di Silverlight.
Nella tabella seguente vengono mostrate due condizioni di filtro che non è possibile creare tramite la progettazione query.
Condizione di filtro |
Motivi per l'utilizzo del codice |
---|---|
Restituire i primi 10 clienti in base al numero di ordini di vendita. |
Per determinare il numero di ordini di vendita, è necessario utilizzare l'operazione Count.Operazioni come Count, Aggregate e Sum non sono disponibili nella progettazione query. |
Restituire tutti i clienti che hanno acquistato una carriola. |
Per determinare se un cliente ha acquistato una carriola, è necessario utilizzare una condizione di filtro che fa riferimento a un'entità Product.Poiché un cliente può essere associato a diversi prodotti, è probabile che l'entità Product esista sul lato molti di una relazione di Customer-Product.Nella progettazione query non è possibile passare al lato molti di una relazione. |
Per risolvere questa limitazione, è possibile aggiungere codice personalizzato a un metodo chiamato quando viene eseguita la query.Per ulteriori informazioni, vedere Procedura: estendere una query tramite codice.
Nel codice è possibile definire condizioni di filtro tramite la sintassi LINQ standard.Durante l'esecuzione della query, le condizioni definite nella finestra di progettazione vengono combinate con quelle specificate nel codice per produrre il risultato della query.
Tutte le condizioni definite nel codice non vengono visualizzate come condizioni di filtro nella progettazione query.Analogamente, le condizioni di filtro che si aggiungono tramite la progettazione query non vengono visualizzate nel metodo.Se si desidera aggiungere un parametro a una query, è possibile effettuare tale operazione solo tramite la progettazione query.I parametri che vengono aggiunti tramite la progettazione query vengono visualizzati nell'elenco dei parametri del metodo.
Utilizzo di una query
È possibile utilizzare una query in una schermata o eseguire la query nel codice come parte di un'operazione aziendale.
Utilizzo di una query in una schermata
È possibile creare una schermata basata su una query personalizzata (ad esempio, un schermata in cui viene mostrato un elenco di clienti che si trovano negli Stati Uniti).Per ulteriori informazioni, vedere Procedura: creare una schermata di Silverlight.
È possibile aggiungere più query a una schermata.Ad esempio, è possibile progettare una query che consenta di mostrare un elenco di ordini di vendita per un particolare cliente.È possibile aggiungere tale query alla schermata Cliente.È quindi possibile consentire all'utente di selezionare un cliente in modo da poter visualizzare tutti gli ordini di vendita correlati.Per ulteriori informazioni su come eseguire tale operazione, vedere Procedura: fornire un valore a un parametro di query.
Utilizzo di una query nel codice
È possibile recuperare query dal modello dell'applicazione ed eseguirle quindi nel codice.In questo modo è possibile utilizzare raccolte di destinazione di dati nella logica di business dell'applicazione.Per ulteriori informazioni, vedere Procedura: recuperare dati da una query tramite codice.
Argomenti correlati
Titolo |
Descrizione |
Viene illustrata la posizione in cui è possibile aggiungere una query nell'interfaccia utente di Visual Studio LightSwitch. |
|
Procedura: progettare una query utilizzando Progettazione query |
Viene descritto come definire le condizioni di filtro, i parametri e i termini di ordinamento di una query tramite una finestra di progettazione visiva. |
Viene descritto come consentire agli utenti di fornire un valore a un parametro di query. |
|
Viene descritto come modificare una query in modo che vada oltre le funzionalità della finestra di progettazione. |
|
Viene descritto come gestire eventi che si verificano prima e dopo l'esecuzione di una query. |
|
Viene descritto come recuperare ed eseguire una query tramite codice. |
|
Vengono descritti gli elementi di query e le proprietà di query.È possibile impostare i valori di queste proprietà nella finestra Proprietà. |