實體類型 (EDM)
在 實體資料模型 (EDM) 中,EntityType 是應用程式定義域內某個資料型別的設計範本。實體宣告會以結構描述的方式代表特定資料型別。資料表結構或程式碼會以不妨害的方式使用結構描述,以指定此資料型別的所有詳細資料。在設計完成之後,將會在此設計上建置可程式化資料型別。
EDM EntityType 是用來塑造商務應用程式中的最上層概念,例如客戶、訂單或供應商。每一個實體都會在概念結構定義語言 (CSDL) 中定義為 EntityType。在以結構描述的方式定義 EntityType 之後,它就會變成應用程式開發的作業單位。每一個 EntityType 在概念上都是獨立的,而且都有唯一的識別。
編輯屬性和識別
當應用程式程式碼將結構描述內的 EntityType 具現化時,它會有名稱、屬性和識別資料型別的 Key 屬性。
大多數有關 EntityType 的資訊都是由它的屬性所包含。屬性是 EDM SimpleType 或 ComplexType 的資料。屬性是單一值,但是 NavigationProperty 型別可與 Association 一起使用以實作屬性,其作用如同資料項目的集合。如需導覽屬性的詳細資訊,請參閱 EDM 中的導覽屬性 (EDM)。如需關聯的詳細資訊,請參閱 Entity Data Model 關聯性。
屬性
屬性會為指定之資料型別的值定義唯一名稱,藉此將資訊加入至 EntityType。屬性 (Property) 規格由名稱及型別組成,並且可使用 GetterAccess 和 SetterAccess 屬性 (Attribute) 指定存取限制式。屬性的型別是從指定為 EDM SimpleType 的屬性中選取而來。
除了參與 Key 的屬性以外,所有屬性的值都會是 Null。下列範例示範的是 EntityType 的宣告。
<EntityType Name="Person">
<Key>
<PropertyRef Name="EmailID"/>
</Key>
<Property Name="EmailID" Type="String" Nullable="false" />
<Property Name="Name" Type="String" />
<Property Name="Address" Type="String" />
<Property Name="PhoneNumber" Type=" String"/>
</EntityType>
在此範例中,EmailID
屬性被指定為這個實體中的 Key 屬性。索引鍵不能是 Null
,也就是 Person 執行個體 (Instance) 必須有電子郵件識別項。Key 是用來識別使用它之應用程式中的型別執行個體。
實體索引鍵
EntityType 必須定義 Key,它是由為那個型別定義的一個或多個屬性所組成。任何一組 SimpleType 屬性都可以當做 Key。Key 所使用的所有屬性在應用程式程式碼中皆不得為 Null
。
附註 |
---|
因為效能及可預測性的關係而將 String 型別當做 Key 並不是很好的作法;str1 == str2 的意思非常模稜兩可。 |
下列範例示範的是使用兩個 SimpleType 屬性 (Property) 將 Key 屬性 (Attribute) 指派給複合 Key:
<EntityType Name="Person">
<Key>
<PropertyRef Name="ContactId" />
<PropertyRef Name="Name" />
</Key>
<Property Name="ContactId" Type="String" Nullable="false" />
<Property Name="Name" Type="String" Nullable="false" />
<Property Name="PhoneNumber" Type="String" />
</EntityType>