Property 項目 (CSDL)
概念結構定義語言 (CSDL) 中的 Property 項目可以是 EntityType 項目、ComplexType 項目或 RowType 項目的子項目
EntityType 和 ComplexType 項目的應用程式
Property 項目 (做為 EntityType 或 ComplexType 項目的子系) 可定義資料的圖形和特性,此資料由實體類型執行個體或複雜型別所包含。 概念模型中的屬性類似類別中定義的屬性。 如同類別上的屬性可定義類別的圖形並包含關於物件的資訊,概念模型的屬性可定義實體類別的圖形,並包含關於實體類型執行個體的資訊。
Property 項目可以擁有下列子項目 (依列出的順序):
Documentation 項目 (可允許零或一個項目)
Annotation 項目 (可允許零或多個項目)
下列 Facet 可套用至 Property 項目:Nullable、DefaultValue、MaxLength、FixedLength、Precision、Scale、Unicode、Collation、ConcurrencyMode。 Facet 是 XML 屬性 (attribute),提供關於屬性 (property) 值如何儲存在資料存放區資訊。 如需詳細資訊,請參閱 Facet (CSDL)。
注意: |
---|
Facet 只能套用至 EDMSimpleType 型別的屬性。如需詳細資訊,請參閱概念模型型別。 |
適用屬性
以下資料表描述的屬性可套用至 Property 項目。
屬性名稱 | 必要 | 值 |
---|---|---|
Name |
是 |
屬性的名稱。 |
Type |
是 |
屬性值的型別。 屬性值型別必須是模型範圍內的 EDMSimpleType 或複雜型別 (以完整名稱表示)。 如需詳細資訊,請參閱概念模型型別。 |
Nullable |
否 |
True (預設值) 或 False 是根據屬性是否可以有 null 值而定。
注意:
在 https://schemas.microsoft.com/ado/2006/04/edm 命名空間所指的 CSDL 版本中,複雜類型屬性必須是
Nullable="False" 。
|
DefaultValue |
否 |
屬性的預設值。 |
MaxLength |
否 |
屬性值的最大長度。 |
FixedLength |
否 |
True or False depending on whether the property value will be stored as a fixed length string. |
Precision |
否 |
屬性值的準確度。 |
Scale |
否 |
屬性值的小數點位數。 |
Unicode |
否 |
True 或 False 是根據屬性值是否可以儲存為 Unicode 字串而定。 |
Collation |
否 |
指定資料來源中使用之定序順序的字串。 |
ConcurrencyMode |
否 |
None (預設值) 或 Fixed。 如果值是設為 Fixed,屬性值將會用於開放式並行存取檢查。 |
注意: |
---|
任何數量的附註屬性 (自訂 XML 屬性) 都可以套用至 Property 項目。不過,自訂屬性不可屬於任何 XML 命名空間,這是保留供 CSDL 使用。任兩個自訂屬性的完整名稱不能相同。 |
範例
下列範例會顯示 EntityType 項目包含三個 Property 項目。
<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>
下列範例會顯示 ComplexType 項目包含五個 Property 項目。
<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 項目的應用程式
Property 項目 (做為 RowType 項目的子系) 可定義資料的圖形和特性,而且可由模型定義的函式傳遞或傳回。 如需詳細資訊,請參閱Function 項目 (CSDL)。
Property 項目只能擁有下列子項目其中的一項:
Property 項目可擁有任何數量的 Annotation 項目子項目。
注意: |
---|
Annotation 項目僅能用於應用程式的概念模型,該應用程式的目標必須是 .NET Framework 4 版或以後版本。這類模型的 XML 命名空間是 https://schemas.microsoft.com/ado/2008/09/edm。 |
適用屬性
以下資料表描述的屬性可套用至 Property 項目。
屬性名稱 | 必要 | 值 |
---|---|---|
Name |
是 |
屬性的名稱。 |
Type |
是 |
屬性值的型別。 |
Nullable |
否 |
True (預設值) 或 False 是根據屬性是否可以有 null 值而定。
注意:
在 https://schemas.microsoft.com/ado/2006/04/edm 命名空間所指的 CSDL 版本中,複雜類型屬性必須是
Nullable="False" 。
|
DefaultValue |
否 |
屬性的預設值。 |
MaxLength |
否 |
屬性值的最大長度。 |
FixedLength |
否 |
True or False depending on whether the property value will be stored as a fixed length string. |
Precision |
否 |
屬性值的準確度。 |
Scale |
否 |
屬性值的小數點位數。 |
Unicode |
否 |
True 或 False 是根據屬性值是否可以儲存為 Unicode 字串而定。 |
Collation |
否 |
指定資料來源中使用之定序順序的字串。 |
注意: |
---|
任何數量的附註屬性 (自訂 XML 屬性) 都可以套用至 Property 項目。不過,自訂屬性不可屬於任何 XML 命名空間,這是保留供 CSDL 使用。任兩個自訂屬性的完整名稱不能相同。 |
範例
下列範例顯示用來定義模型定義函式中,傳回型別之圖形的 Property 項目。
<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>
另請參閱
概念
Entity Framework 概觀
CSDL 規格
Schema 項目 (CSDL)
FunctionImport 項目 (CSDL)
其他資源
CSDL、SSDL 和 MSL 規格
ADO.NET Entity Data Model Tools
property (Entity Data Model)
facet (Entity Data Model)