Freigeben über


DefiningExpression-Element (CSDL)

Das DefiningExpression-Element in konzeptioneller Schemadefinitionssprache (CSDL) enthält einen Entity SQL-Ausdruck, der im konzeptionellen Modell eine Funktion definiert.Weitere Informationen finden Sie unter Function-Element (CSDL) und Entity SQL-Sprache.

Hinweis

Zu Validierungszwecken kann ein DefiningExpression-Element beliebigen Inhalt enthalten.Entity Framework löst zur Laufzeit jedoch eine Ausnahme aus, wenn ein DefiningExpression-Element keinen gültigen Entity SQL-Ausdruck enthält.

Anwendbare Attribute

Eine beliebige Anzahl von Anmerkungsattributen (benutzerdefinierte XML-Attribute) kann für das DefiningExpression-Element übernommen werden.Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für CSDL reserviert ist.Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.

Beispiel

Im folgenden Beispiel wird mithilfe eines DefiningExpression-Elements eine Funktion definiert, die den Zeitraum seit der Veröffentlichung eines Buchs in Jahren zurückgibt.Der Inhalt des DefiningExpression-Elements wird in Entity SQL geschrieben.

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

Siehe auch

Konzepte

Übersicht über das Entity Framework

CSDL-Spezifikation

FunctionImport-Element (CSDL)

Andere Ressourcen

CSDL-, SSDL- und MSL-Spezifikationen

ADO.NET Entity Data Model Tools