Property-Element (CSDL)
Das Property-Element in konzeptioneller Schemadefinitionssprache (CSDL) kann ein untergeordnetes Element des EntityType-Elements, des ComplexType-Elements oder des RowType-Elements sein.
EntityType- und ComplexType-Element-Anwendungen
Property-Elemente (als untergeordnete Elemente des EntityType- oder ComplexType-Elements) definieren die Form und die Eigenschaften der Daten, die eine Entitätstypinstanz oder eine komplexe Typinstanz enthält.Eigenschaften in einem konzeptionellen Modell sind analog zu den Eigenschaften, die für eine Klasse definiert werden.So wie Eigenschaften die Form einer Klasse definieren und Informationen zu Objekten enthalten definieren Eigenschaften in einem konzeptionellen Modell die Form eines Entitätstyps und enthalten Informationen zu Entitätstypinstanzen.
Das Property-Element kann die folgenden untergeordneten Elemente aufweisen (der vorliegenden Reihenfolge entsprechend):
Dokumentationselement (kein (null) oder ein Element zugelassen)
Anmerkungselemente (kein (null) Element oder mehrere Elemente zugelassen)
Die folgenden Facets können für ein Property-Element übernommen werden: Nullable, DefaultValue, MaxLength, FixedLength, Precision, Scale, Unicode, Collation, ConcurrencyMode.Facets sind XML-Attribute, die Informationen über die Speicherung von Eigenschaftswerten im Datenspeicher bereitstellen.Weitere Informationen finden Sie unter Facets (CSDL).
Hinweis
Facets können nur auf Eigenschaften vom Typ EDMSimpleType angewendet werden.Weitere Informationen finden Sie unter Konzeptionelle Modelltypen (CSDL).
Anwendbare Attribute
In der folgenden Tabelle werden die Attribute beschrieben, die für das Property-Element übernommen werden können.
Attributname |
Ist erforderlich |
Value |
---|---|---|
Name |
Ja |
Der Name der Eigenschaft. |
Type |
Ja |
Der Typ des Eigenschaftswerts.Der Eigenschaftswerttyp muss ein EDMSimpleType oder ein komplexer Typ (durch einen vollqualifizierten Namen angegeben) sein, der sich innerhalb des Bereichs des Modells befindet.Weitere Informationen finden Sie unter Konzeptionelle Modelltypen (CSDL). |
Nullable |
Nein |
True (Standardwert) oder False, je nach dem, ob die Eigenschaft über einen Null-Wert verfügen kann.
Hinweis
In der Version von CSDL, die im https://schemas.microsoft.com/ado/2006/04/edm-Namespace angegeben wird, muss eine komplexe Typeigenschaft Nullable="False" aufweisen.
|
DefaultValue |
Nein |
Der Standardwert der Eigenschaft. |
MaxLength |
Nein |
Die maximale Länge des Eigenschaftswerts. |
FixedLength |
Nein |
True oder False, abhängig davon, ob der Eigenschaftswert als Zeichenfolge mit fester Länge gespeichert wird. |
Precision |
Nein |
Die Genauigkeit des Eigenschaftswerts. |
Scale |
Nein |
Die Skalierung des Eigenschaftswerts. |
Unicode |
Nein |
True oder False, abhängig davon, ob der Eigenschaftswert als Unicode-Zeichenfolge gespeichert wird. |
Collation |
Nein |
Eine Zeichenfolge, die die Sortierreihenfolge angibt, die in der Datenquelle verwendet werden soll. |
ConcurrencyMode |
Nein |
None (Standardwert) oder Fixed.Wenn der Wert auf Fixed festgelegt wird, wird der Eigenschaftswert in vollständigen Parallelitätsprüfungen verwendet. |
Hinweis
Eine beliebige Anzahl von Anmerkungsattributen (benutzerdefinierte XML-Attribute) kann für das Property-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
Das folgende Beispiel zeigt ein EntityType-Element mit drei Property-Elementen:
<EntityType Name="Book">
<Key>
<PropertyRef Name="ISBN" />
</Key>
<Property Type="String" Name="ISBN" Nullable="false" />
<Property Type="String" Name="Title" Nullable="false" />
<Property Type="Decimal" Name="Revision" Nullable="false" Precision="29" Scale="29" />
<NavigationProperty Name="Publisher" Relationship="BooksModel.PublishedBy"
FromRole="Book" ToRole="Publisher" />
<NavigationProperty Name="Authors" Relationship="BooksModel.WrittenBy"
FromRole="Book" ToRole="Author" />
</EntityType>
Das folgende Beispiel zeigt ein ComplexType-Element mit fünf Property-Elementen:
<ComplexType Name="Address" >
<Property Type="String" Name="StreetAddress" Nullable="false" />
<Property Type="String" Name="City" Nullable="false" />
<Property Type="String" Name="StateOrProvince" Nullable="false" />
<Property Type="String" Name="Country" Nullable="false" />
<Property Type="String" Name="PostalCode" Nullable="false" />
</ComplexType>
RowType-Element-Anwendung
Property-Elemente (als untergeordnete Elemente eines RowType-Elements) definieren die Form und die Eigenschaften der Daten, die an eine modelldefinierte Funktion übergeben oder von einer modelldefinierten Funktion zurückgegeben werden können.Weitere Informationen finden Sie unter Function-Element (CSDL).
Das Property-Element kann über genau eines der folgenden untergeordneten Elemente verfügen:
Das Property-Element kann über eine beliebige Anzahl untergeordneter Anmerkungselemente verfügen.
Hinweis
Anmerkungselemente sind nur in konzeptionellen Modellen für Anwendungen zulässig, die auf .NET Framework, Version 4 oder später, abzielen.Der XML-Namespace für diese Modelle ist https://schemas.microsoft.com/ado/2008/09/edm.
Anwendbare Attribute
In der folgenden Tabelle werden die Attribute beschrieben, die für das Property-Element übernommen werden können.
Attributname |
Ist erforderlich |
Value |
---|---|---|
Name |
Ja |
Der Name der Eigenschaft. |
Type |
Ja |
Der Typ des Eigenschaftswerts. |
Nullable |
Nein |
True (Standardwert) oder False, je nach dem, ob die Eigenschaft den Wert NULL haben kann.
Hinweis
In der Version von CSDL, die im https://schemas.microsoft.com/ado/2006/04/edm-Namespace angegeben wird, muss eine komplexe Typeigenschaft Nullable="False" aufweisen.
|
DefaultValue |
Nein |
Der Standardwert der Eigenschaft. |
MaxLength |
Nein |
Die maximale Länge des Eigenschaftswerts. |
FixedLength |
Nein |
True oder False, abhängig davon, ob der Eigenschaftswert als Zeichenfolge mit fester Länge gespeichert wird. |
Precision |
Nein |
Die Genauigkeit des Eigenschaftswerts. |
Scale |
Nein |
Die Skalierung des Eigenschaftswerts. |
Unicode |
Nein |
True oder False, abhängig davon, ob der Eigenschaftswert als Unicode-Zeichenfolge gespeichert wird. |
Collation |
Nein |
Eine Zeichenfolge, die die Sortierreihenfolge angibt, die in der Datenquelle verwendet werden soll. |
Hinweis
Eine beliebige Anzahl von Anmerkungsattributen (benutzerdefinierte XML-Attribute) kann für das Property-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
Das folgende Beispiel zeigt Property-Elemente, die zur Definition der Form des Rückgabetyps einer modelldefinierten Funktion verwendet wurden.
<Function Name="LastNamesAfter">
<Parameter Name="someString" Type="Edm.String" />
<ReturnType>
<CollectionType>
<RowType>
<Property Name="FirstName" Type="Edm.String" Nullable="false" />
<Property Name="LastName" Type="Edm.String" Nullable="false" />
</RowType>
</CollectionType>
</ReturnType>
<DefiningExpression>
SELECT VALUE ROW(p.FirstName, p.LastName)
FROM SchoolEntities.People AS p
WHERE p.LastName >= somestring
</DefiningExpression>
</Function>
Siehe auch
Konzepte
Übersicht über das Entity Framework