Поделиться через


Добавление дескриптора фильтра в метод Finder

Дескрипторы фильтров позволяют потребителям модели передавать значения методам перед их выполнением. Дополнительные сведения см. в разделе Проектирование модели подключения к бизнес-данным.

Один из распространенных сценариев заключается в том, что пользователи в SharePoint хотят получить экземпляры внешнего типа контента, соответствующего некоторым критериям. Этот сценарий можно поддерживать, добавив дескриптор фильтра в метод Finder.

Добавление дескриптора фильтра в метод Finder

  1. В окне сведений о методе BDC разверните узел метода Finder, разверните узел "Параметры" и добавьте входной параметр. Дополнительные сведения см. в разделе "Практическое руководство. Добавление параметра в метод".

  2. В окне сведений о методе выберите дескриптор типа параметра.

  3. В строке меню выберите окно "Просмотр>свойств".

  4. В окне "Свойства" задайте для свойства Type Name тип данных, соответствующий фильтру.

    Например, фильтр может использовать дату заказа, чтобы ограничить количество заказов на продажу, возвращаемое методом. Для поддержки этого фильтра свойство Type Name дескриптора типа должно иметь значение System.DateTime.

  5. В окне сведений о методе разверните узел дескрипторов фильтра.

  6. В списке дескрипторов фильтра выберите "Создать дескриптор фильтра".

    Новый дескриптор фильтра отображается под узлом дескрипторов фильтра.

  7. В строке меню выберите окно "Просмотр>свойств".

  8. В окне "Свойства" выберите свойство Type.

  9. В списке, отображаемом для свойства Type , выберите нужный шаблон фильтрации.

    Например, чтобы создать фильтр, использующий дату заказа, чтобы ограничить количество заказов, возвращаемых в методе 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;
    }