다음을 통해 공유


방법: Finder 메서드에 필터 설명자 추가

필터 설명자를 사용하면 모델 소비자가 메서드가 실행되기 전에 메서드에 값을 전달할 수 있습니다.자세한 내용은 비즈니스 데이터 연결 모델 디자인을 참조하십시오.

한 가지 일반적인 시나리오는 SharePoint의 사용자가 일부 조건과 일치하는 외부 콘텐츠 형식의 인스턴스를 검색하려는 경우입니다.필터 설명자를 Finder 메서드에 추가하여 이 시나리오를 지원할 수 있습니다.

필터 설명자를 Finder 메서드에 추가하려면

  1. BDC 메서드 세부 정보 창에서 Finder 메서드의 노드를 확장하고 매개 변수 노드를 확장한 다음 입력 매개 변수를 추가합니다.자세한 내용은 방법: 메서드에 매개 변수 추가를 참조하십시오.

  2. 메서드 정보 창에서 매개 변수의 형식 설명자 선택할 합니다.

  3. 메뉴 표시줄에서 선택 보기, 속성 창.

  4. 속성 창에서 형식 이름 속성을 필터에 적합한 데이터 형식으로 설정합니다.

    예를 들어, 필터에서 주문 날짜를 사용하여 메서드에서 반환하는 판매 주문의 수를 제한할 수 있습니다.이 필터를 지원하려면 형식 설명자의 형식 이름 속성을 System.DateTime으로 설정해야 합니다.

  5. 메서드 세부 정보 창에서 FilterDescriptor 노드를 확장합니다.

  6. 추가 필터 설명자 목록에서 선택 필터 설명자 만들기.

    새로운 필터 설명자가 FilterDescriptor 노드 아래에 표시됩니다.

  7. 메뉴 표시줄에서 선택 보기, 속성 창.

  8. 속성 창, 선택은 형식 속성.

  9. 에 나타나는 목록에는 형식 속성을 필터링 원하는 무늬를 선택 합니다.

    예를 들어 주문 날짜를 사용 하 여 Finder 메서드에서 반환 되는 판매 주문을 제한 하는 필터를 만들려면 선택 비교.비교 필터 찾기 메서드를 특정 조건에 맞는 경우에만 반환 됩니다.각 필터링 패턴에 대한 자세한 내용은 Types of Filters Supported by BDC를 참조하십시오.

  10. 속성 창, 선택은 관련 된 형식 설명자 속성.

  11. 목록에 표시 되는 연관 된 형식 설명자 속성,이 절차 앞부분에서 만든 형식 설명자 선택할.이렇게 하면 필터가 Finder 메서드의 입력 매개 변수와 관련됩니다.

  12. 데이터를 반환하는 Finder 메서드에 코드를 추가합니다.입력 매개 변수를 선택 쿼리에서 조건으로 사용할 수 있습니다.

    다음 예제에서는 지정된 주문 날짜가 있는 판매 주문을 반환합니다.

    [!참고]

    ServerName 필드의 값을 서버 이름으로 바꿉니다.

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

참고 항목

작업

방법: Finder 메서드 추가

방법: SpecificFinder 메서드 추가

방법: 메서드에 매개 변수 추가

방법: 매개 변수의 형식 설명자 정의

기타 리소스

비즈니스 데이터 연결 모델 디자인

SharePoint에 비즈니스 데이터 통합