将筛选器描述符添加到 Finder 方法

筛选器描述符允许模型的使用者在执行之前将值传递给方法。 有关详细信息,请参阅设计业务数据连接模型

一种常见的情况是,SharePoint 中的用户想要检索符合某些条件的外部内容类型的实例。 可以通过向 Finder 方法添加筛选器描述符来支持此方案。

将筛选器描述符添加到 Finder 方法

  1. 在“BDC 方法详细信息”窗口中,依次展开 Finder 方法的节点和“参数”节点,然后添加输入参数。 有关详细信息,请参阅如何:向方法中添加参数

  2. 在“方法详细信息”窗口中,选择该参数的类型描述符。

  3. 在菜单栏上,选择“视图”>“属性窗口”。

  4. 在“属性”窗口中,将“类型名称”属性设置为适合筛选器的数据类型。

    例如,筛选器可以使用订单日期来限制该方法返回的销售订单数。 若要支持该筛选器,必须将类型描述符的“类型名称”属性设置为 System.DateTime。

  5. 在“方法详细信息”窗口中,扩展“筛选器描述符”节点 。

  6. 在“添加筛选器描述符”列表中,选择“创建筛选器描述符”。

    “筛选器描述符”节点下将显示一个新的筛选器描述符。

  7. 在菜单栏上,选择“视图”>“属性窗口”。

  8. 在“属性”窗口中,选择“类型”属性。

  9. 在显示了“类型”属性的列表中,选择所需的筛选模式。

    例如,若要创建一个使用订单日期来限制在 Finder 方法中返回的销售订单数的筛选器,请选择“比较”。 比较筛选器可确保 Finder 方法仅返回满足特定条件的实例。 有关每种筛选模式的详细信息,请参阅 BDC 支持的筛选器的类型

  10. 在“属性”窗口中,选择“关联的类型描述符”属性。

  11. 在为“关联的类型描述符”属性显示的列表中,选择之前在此过程中创建的类型描述符。 这会将筛选器与 Finder 方法的输入参数相关联。

  12. 向返回数据的 Finder 方法添加代码。 可以使用输入参数作为选择查询中的条件。

    下面的示例返回了具有指定订单日期的销售订单。

    注意

    ServerName 字段的值替换为你的服务器名称。

    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;
    }