Complex Type (EDM)
The ComplexType in the Entity Data Model (EDM) is a data type with internal structure but without a Key property. The ComplexType is used to implement a property that has internal properties of its own.
Either an EntityType or a ComplexType can have a property declared as ComplexType. This property must be mapped as a complex property in the mapping specification.
The Address
property of the following CCustomer
entity is implemented as ComplexType.
<EntityType Name="CCustomer">
<Key>
<PropertyRef Name="CustomerId" />
</Key>
<Property Name="CustomerId" Type="Int32" Nullable="false" />
<Property Name="CompanyName" Type="String" />
<Property Name="ContactName" Type="String" />
<Property Name="ContactTitle" Type="String" />
<Property Name="Address" Type="Self.CAddress" Nullable="false" />
</EntityType>
<ComplexType Name="CAddress">
<Property Name="StreetAddress" Type="String" />
<Property Name="City" Type="String" />
<Property Name="Region" Type="String" />
<Property Name="PostalCode" Type="String" />
<Property Name="Country" Type="String" />
<Property Name="Phone" Type="String" />
<Property Name="Fax" Type="String" />
</ComplexType>
See Also
Tasks
How to: Define a Model with Complex Type (Entity Framework)
How to: Create and Execute Object Queries with Complex Types (Entity Framework)
Concepts
Mapping Complex Type to Stored Procedures (Entity Framework)