Gewusst wie: Hinzufügen eines Filterdeskriptors zu einer Finder-Methode

Filterdeskriptoren ermöglichen es Consumern des Modells, Werte an Methoden zu übergeben, bevor sie ausgeführt werden. Weitere Informationen finden Sie unter Entwerfen eines Business Data Connectivity-Modells.

Häufig möchten Benutzer in SharePoint Instanzen eines externen Inhaltstyps abrufen, auf die bestimmte Kriterien zutreffen. Dies können Sie unterstützen, indem Sie einer Finder-Methode einen Filterdeskriptor hinzufügen.

So fügen Sie einer Finder-Methode einen Filterdeskriptor hinzu

  1. Erweitern Sie im Fenster BDC-Methodendetails den Knoten einer Finder-Methode, erweitern Sie den Knoten Parameter, und fügen Sie einen Eingabeparameter hinzu. Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen eines Parameters zu einer Methode.

  2. Wählen Sie im Fenster Methodendetails den Typdeskriptor des Parameters aus.

  3. Klicken Sie im Menü Ansicht auf Eigenschaftenfenster.

  4. Legen Sie im Eigenschaftenfenster die Eigenschaft Typname auf einen für den Filter geeigneten Datentyp fest.

    So kann in einem Filter beispielsweise anhand des Bestelldatums die Anzahl der von der Methode zurückgegebenen Aufträge eingeschränkt werden. Damit dieser Filter unterstützt wird, muss die Eigenschaft Typname des Typdeskriptors auf System.DateTime festgelegt werden.

  5. Erweitern Sie im Fenster Methodendetails den Knoten Filterdeskriptoren.

  6. Klicken Sie in der Dropdownliste Filterdeskriptor hinzufügen auf Filterdeskriptor erstellen.

    Unter dem Knoten Filterdeskriptoren wird ein neuer Filterdeskriptor angezeigt.

  7. Klicken Sie im Menü Ansicht auf Eigenschaftenfenster.

  8. Wählen Sie im Eigenschaftenfenster die Eigenschaft Typ aus.

  9. Wählen Sie in der Dropdownliste, die für die Eigenschaft Typ angezeigt wird, das gewünschte Filtermuster aus. Weitere Informationen zu den einzelnen Filtermustern finden Sie unter Von BDC unterstützte Filtertypen.

    Wählen Sie beispielsweise zum Erstellen eines Filters, durch den die Anzahl der in einer Finder-Methode zurückgegebenen Aufträge anhand des Bestelldatums eingeschränkt wird, die Option Vergleich aus. Mit einem Vergleichsfilter werden von einer Finder-Methode nur noch Instanzen zurückgegeben, bei denen eine bestimmte Bedingung erfüllt ist.

  10. Wählen Sie im Eigenschaftenfenster die Eigenschaft Zugeordnete Typdeskriptoren aus.

  11. Wählen Sie in der Dropdownliste, die für die Eigenschaft Zugeordnete Typdeskriptoren angezeigt wird, den zuvor in dieser Prozedur erstellten Typdeskriptor aus. Dadurch wird der Filter mit dem Eingabeparameter der Finder-Methode verknüpft.

  12. Fügen Sie der Finder-Methode Code hinzu, durch den Daten zurückgegeben werden. Der Eingabeparameter kann als Bedingung in einer Auswahlabfrage verwendet werden.

    Im folgenden Beispiel werden Aufträge mit dem angegebenen Bestelldatum zurückgegeben.

    Tipp

    Ersetzen Sie den Wert des Felds ServerName durch den Namen Ihres Servers.

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

Siehe auch

Aufgaben

Gewusst wie: Hinzufügen einer Finder-Methode

Gewusst wie: Hinzufügen einer bestimmten Finder-Methode

Gewusst wie: Hinzufügen eines Parameters zu einer Methode

Gewusst wie: Definieren des Typdeskriptors für einen Parameter

Weitere Ressourcen

Entwerfen eines Business Data Connectivity-Modells

Integrieren von Geschäftsdaten in SharePoint