End 項目 (CSDL)
概念結構定義語言 (CSDL) 中的 End 項目可以是 Association 項目 或 AssociationSet 項目 的子項目。 在這兩種情況下,End 項目會有不同的角色,適用的屬性也不同。
End 項目為 Association 項目的子項目
End 項目 (Association 項目的子項目) 可識別其中一個關聯 End 的實體類型,以及可存在於該關聯 End 的實體類型執行個體數量。 關聯 End 會定義為關聯的部分。關聯必須具有兩個關聯 End。 關聯其中一端的實體型別執行個體可透過巡覽屬性或外部索引鍵來存取 (若在實體型別上公開)。 如需詳細資訊,請參閱 NavigationProperty 項目、ReferentialConstraint 項目 和 定義及管理關聯性。
End 項目可以擁有下列子項目 (依列出的順序):
Documentation (零或一個項目)
OnDelete (零或一個項目)
Annotation 項目 (零或多個項目)
適用屬性
下表描述的屬性可套用於 End 項目 (當它是 Association 項目的子項目時)。
屬性名稱 | 必要 | 值 |
---|---|---|
Type |
是 |
其中一個關聯 End 的實體類型名稱。 |
Role |
否 |
關聯 End 的名稱。 如果未提供任何名稱,則會使用關聯 End 上之實體類型的名稱。 |
Multiplicity |
是 |
1、0..1 或 * 取決於可以在其中一個關聯 End 之實體類型執行個體的數量。
|
注意: |
---|
可以將任何數量的註釋屬性 (自訂 XML 屬性) 套用至 End 項目。不過,自訂屬性不可屬於任何 XML 命名空間,這是保留供 CSDL 使用。任兩個自訂屬性的完整名稱不能相同。 |
範例
下列範例顯示 Association 項目定義 CustomerOrders 關聯。 關聯中每個 End 的 Multiplicity 值表示可以讓多個 Orders與一個 Customer 相關聯,但一個 Customer 只能與一個 Order 相關聯。 此外,OnDelete 項目表示,如果刪除 Customer,就會刪除所有與特定 Customer 相關且已載入至 ObjectContext 的 Orders。
<Association Name="CustomerOrders">
<End Type="ExampleModel.Customer" Role="Customer" Multiplicity="1" />
<End Type="ExampleModel.Order" Role="Order" Multiplicity="*">
<OnDelete Action="Cascade" />
</End>
</Association>
End 項目為 AssociationSet 項目的子項目
End 項目指定關聯集的其中一個 End。 AssociationSet 項目必須包含兩個 End 項目。 End 項目中包含的資訊用於將資料集對應至資料來源。 如需詳細資訊,請參閱 AssociationSetMapping 項目 (MSL)和 EndProperty 項目 (MSL)。
End 項目可以擁有下列子項目 (依列出的順序):
Documentation (零或一個項目)
Annotation 項目 (零或多個項目)
注意: |
---|
Annotation 項目必須出現在所有其他子項目之後。Annotation 項目僅能用於應用程式的概念模型,該應用程式的目標必須是 .NET Framework 4 版或以後版本。這類模型的 XML 命名空間是 https://schemas.microsoft.com/ado/2008/09/edm。 |
適用屬性
下表描述的屬性可套用於 End 項目 (當它是 AssociationSet 項目的子項目時)。
屬性名稱 | 必要 | 值 |
---|---|---|
EntitySet |
是 |
The name of the EntitySet element that defines one end of the parent AssociationSet element. EntitySet 項目必須和 AssociationSet 父項目在同一個實體容器中定義。 |
Role |
否 |
關聯集 End 的名稱。 如果未使用 Role 屬性,關聯集 End 的名稱會是該實體集的名稱。 |
注意: |
---|
可以將任何數量的註釋屬性 (自訂 XML 屬性) 套用至 End 項目。不過,自訂屬性不可屬於任何 XML 命名空間,這是保留供 CSDL 使用。任兩個自訂屬性的完整名稱不能相同。 |
範例
下列範例顯示的 EntityContainer 項目有兩個 AssociationSet 項目,這兩個項目各自有兩個 End 項目:
<EntityContainer Name="BooksContainer" >
<EntitySet Name="Books" EntityType="BooksModel.Book" />
<EntitySet Name="Publishers" EntityType="BooksModel.Publisher" />
<EntitySet Name="Authors" EntityType="BooksModel.Author" />
<AssociationSet Name="PublishedBy" Association="BooksModel.PublishedBy">
<End Role="Book" EntitySet="Books" />
<End Role="Publisher" EntitySet="Publishers" />
</AssociationSet>
<AssociationSet Name="WrittenBy" Association="BooksModel.WrittenBy">
<End Role="Book" EntitySet="Books" />
<End Role="Author" EntitySet="Authors" />
</AssociationSet>
</EntityContainer>
另請參閱
概念
Entity Framework 概觀
CSDL 規格
Schema 項目 (CSDL)
EntityContainer 項目 (CSDL)
其他資源
CSDL、SSDL 和 MSL 規格
ADO.NET Entity Data Model Tools
association end (Entity Data Model)
association set (Entity Data Model)
association set end (Entity Data Model)