Procedura: aggiungere un descrittore di filtro a un metodo Finder
I descrittori di filtro consentono ai consumer del modello di passare valori ai metodi prima che vengano eseguiti. Per ulteriori informazioni, vedere Progettazione di un modello di integrazione applicativa dei dati.
Uno scenario comune è quello in cui gli utenti di SharePoint desiderano recuperare istanze di un tipo di contenuto esterno corrispondenti ad alcuni criteri. È possibile supportare questo scenario aggiungendo un descrittore di filtro a un metodo Finder.
Per aggiungere un descrittore di filtro a un metodo Finder
Nella finestra Dettagli metodo di integrazione applicativa dei dati espandere il nodo di un metodo Finder, espandere il nodo Parametri, quindi aggiungere un parametro di input. Per ulteriori informazioni, vedere Procedura: aggiungere un parametro a un metodo.
Nella finestra Dettagli metodo selezionare il descrittore di tipo del parametro.
Scegliere Finestra Proprietà dal menu Visualizza.
Nella finestra Proprietà impostare la proprietà Nome tipo su un tipo di dati adatto al filtro.
È ad esempio possibile applicare un filtro basato sulla data dell'ordine per limitare il numero di ordini di vendita restituiti dal metodo. Per supportare tale filtro, è necessario impostare la proprietà Nome tipo del descrittore di tipo su System.DateTime.
Nella finestra Dettagli metodo espandere il nodo Descrittori di filtro.
Nell'elenco a discesa Aggiungi descrittore di filtro fare clic su Crea descrittore di filtro.
Verrà visualizzato un nuovo descrittore di filtro nel nodo Descrittori di filtro.
Scegliere Finestra Proprietà dal menu Visualizza.
Nella finestra Proprietà selezionare la proprietà Tipo.
Nell'elenco a discesa visualizzato per la proprietà Tipo selezionare il criterio di filtro desiderato. Per ulteriori informazioni su ogni criterio di filtro, vedere Tipi di filtri supportati dall'integrazione applicativa dei dati (la pagina potrebbe essere in inglese).
Per creare ad esempio un filtro che utilizza una data dell'ordine per limitare il numero di ordini di vendita restituiti in un metodo Finder, selezionare Confronto. Un filtro Confronto limita le istanze restituite da un metodo Finder a quelle in cui viene soddisfatta una determinata condizione.
Nella finestra Proprietà selezionare la proprietà Descrittori di tipo associati.
Nell'elenco a discesa visualizzato per la proprietà Descrittori di tipo associati selezionare il descrittore di tipo creato precedentemente in questa procedura. Il filtro verrà associato al parametro di input del metodo Finder.
Aggiungere codice al metodo Finder che restituisce dati. È possibile utilizzare il parametro di input come condizione in una query Select.
Nell'esempio seguente vengono restituiti ordini di vendita con la data specificata.
Nota
Sostituire il valore del campo ServerName con il nome del server locale.
Public Shared Function ReadList(ByVal OrderDateParam As DateTime) As IEnumerable(Of SalesOrderHeader) Const ServerName As String = "MySQLServerName" Dim dataContext As AdventureWorksDataContext = _ New AdventureWorksDataContext("Data Source=" & ServerName & _ ";Initial Catalog=AdventureWorks;Integrated Security=True") Dim NoValuePassedIn As DateTime = Convert.ToDateTime("1/1/1900 12:00:00 AM") Dim DefaultDateTime As DateTime = Convert.ToDateTime("2001-09-01 00:00:00.000") ' If the user does not provide a value for the filter. If OrderDateParam = NoValuePassedIn Then ' Use a default date time value. OrderDateParam = DefaultDateTime End If Dim SalesOrderHeader As IEnumerable(Of SalesOrderHeader) = _ From SalesOrderHeaders In dataContext.SalesOrderHeaders _ Where SalesOrderHeaders.OrderDate = OrderDateParam _ Select SalesOrderHeaders Return SalesOrderHeader End Function
public static IEnumerable<SalesOrderHeader> ReadList(DateTime OrderDateParam) { const string ServerName = "MySQLServerName"; AdventureWorksDataContext dataContext = new AdventureWorksDataContext ("Data Source=" + ServerName + ";" + "Initial Catalog=AdventureWorks;Integrated Security=True"); DateTime NoValuePassedIn = Convert.ToDateTime("1/1/1900 12:00:00 AM"); DateTime DefaultDateTime = Convert.ToDateTime("2001-09-01 00:00:00.000"); // If the user does not provide a value for the filter. if (OrderDateParam == NoValuePassedIn) { // Use a default date time value. OrderDateParam = DefaultDateTime; } IEnumerable<SalesOrderHeader> SalesOrderHeader = from salesOrderHeaders in dataContext.SalesOrderHeaders where salesOrderHeaders.OrderDate == OrderDateParam select salesOrderHeaders; return SalesOrderHeader; }
Vedere anche
Attività
Procedura: aggiungere un metodo Finder
Procedura: aggiungere un metodo Finder specifico
Procedura: aggiungere un parametro a un metodo
Procedura: definire il descrittore di tipo di un parametro
Altre risorse
Progettazione di un modello di integrazione applicativa dei dati