Cómo: Agregar un descriptor de filtro para un método Finder
Los descriptores de filtro permiten a los consumidores del modelo pasar valores a los métodos antes de que se ejecuten.Para obtener más información, vea Diseñar un modelo de conectividad a datos profesionales.
Es muy habitual que los usuarios de SharePoint deseen recuperar las instancias de un tipo de contenido externo que coincidan con ciertos criterios.Puede admitir este escenario agregando un descriptor de filtro a un método Finder.
Para agregar un descriptor de filtro a un método Finder
En la ventana Detalles del método de BDC, expanda el nodo de un método Finder, expanda el nodo Parámetros y, a continuación, agregue un parámetro de entrada.Para obtener más información, vea Cómo: Agregar un parámetro a un método.
En el Detalles del método ventana, elija el descriptor de tipos del parámetro.
En la barra de menús, seleccione vista, Ventana de propiedades.
En la ventana Propiedades, establezca la propiedad Type Name en un tipo de datos que sea adecuado para el filtro.
Un filtro puede usar, por ejemplo, una fecha de pedido para limitar el número de pedidos de venta devueltos por el método.Para admitir ese filtro, la propiedad Type Name del descriptor de tipo debe estar establecida en System.DateTime.
En la ventana Detalles del método, expanda el nodo Descriptores de filtro.
En Agregar un Descriptor de filtro , elija Crear Descriptor de filtro.
Bajo el nodo Descriptores de filtro, aparece un nuevo descriptor de filtro.
En la barra de menús, seleccione vista, Ventana de propiedades.
En el Propiedades ventana, elija la tipo de propiedad.
En la lista que aparece para el tipo de propiedad, seleccione el modelo de filtro que desea.
Por ejemplo, para crear un filtro que utiliza una fecha de pedido para limitar el número de pedidos de ventas devueltas en un método de Finder, seleccione comparación.Un filtro de comparación asegura que un método buscador devuelve sólo las instancias que cumplen una condición específica.Para obtener más información sobre cada uno de los modelos de filtrado, vea Types of Filters Supported by the BDC.
En el Propiedades ventana, elija la Asociados descriptores de tipo propiedad.
En la lista que aparece para el Asociados descriptores de tipo propiedad, seleccione el descriptor de tipos que creó anteriormente en este procedimiento.De este modo, relacionará el filtro con el parámetro de entrada del método Finder.
Agregue el código al método Finder que devuelve los datos.Puede usar el parámetro de entrada como condición en una consulta de selección (SELECT).
En el siguiente ejemplo se devuelven pedidos de ventas que tienen la fecha de pedido especificada.
[!NOTA]
Reemplace el valor del campo ServerName con el nombre del servidor.
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; }
Vea también
Tareas
Cómo: Agregar un método Finder
Cómo: Agregar un método Finder específico
Cómo: Agregar un parámetro a un método
Cómo: Definir el descriptor de tipo de un parámetro