Modelldefinierte Funktionmodel-defined function

Ein modelldefinierte Funktion ist eine Funktion, die in einem konzeptionellen Modell definiert ist.A model-defined function is a function that is defined in a conceptual model. Der Text einer modelldefinierten Funktion, ausgedrückt in Entity SQL, wodurch für die Funktion unabhängig von ausgedrückt werden Regeln oder Sprachen, die in der Datenquelle unterstützt.The body of a model-defined function is expressed in Entity SQL, which allows for the function to be expressed independently of rules or languages supported in the data source.

Eine Definition für eine modelldefinierte Funktion enthält die folgenden Informationen:A definition for a model-defined function contains the following information:

  • Einen Funktionsnamen.A function name. (erforderlich)(Required)

  • Den Typ des Rückgabewerts.The type of the return value. (Optional)(Optional)

    Hinweis

    Wenn kein Rückgabetyp angegeben wird, ist der Rückgabewert leer.If no return type is specified, the return value is void.

  • Parameterinformationen.Parameter information. (Optional)(Optional)

  • Ein Entity SQL Ausdruck, der den Textkörper der Funktion definiert.An Entity SQL expression that defines the body of the function.

Beachten Sie, dass modelldefinierte Funktionen keine Ausgabeparameter unterstützen.Note that model-defined functions do not support output parameters. Diese Einschränkung ist vorhanden, damit modelldefinierte Funktionen verfasst werden können.This restriction is in place so that model-defined functions can be composed.

BeispielExample

Die unten stehende Abbildung zeigt ein konzeptionelles Modell mit drei Entitätstypen: Book, Publisher und Author.The diagram below shows a conceptual model with three entity types: Book, Publisher, and Author.

Screenshot mit einem Modell mit Veröffentlichungsdatum.

Die ADO.NET Entity Framework verwendet eine domänenspezifische Sprache (DSL) Bezeichnung konzeptionelle Schemadefinitionssprache (CSDL), konzeptionelle Modelle zu definieren.The ADO.NET Entity Framework uses a domain-specific language (DSL) called conceptual schema definition language (CSDL) to define conceptual models. Die folgende CSDL definiert eine Funktion im konzeptionellen Modell, das die Anzahl der Jahre zurückgibt, seit eine Instanz eines Book (in der Abbildung oben) veröffentlicht wurde.The following CSDL defines a function in the conceptual model that returns the numbers of years since an instance of a Book (in the diagram above) was published.

<Function Name="GetYearsInPrint" ReturnType="Edm.Int32" >
      <Parameter Name="book" Type="BooksModel.Book" />
      <DefiningExpression>
        Year(CurrentDateTime()) - Year(cast(book.PublishedDate as DateTime))
      </DefiningExpression>
    </Function>

Siehe auchSee also