ComplexType Class

 

Represents a complex type in a conceptual model.

Namespace:   System.Data.Metadata.Edm
Assembly:  System.Data.Entity (in System.Data.Entity.dll)

System.Object
  System.Data.Metadata.Edm.MetadataItem
    System.Data.Metadata.Edm.GlobalItem
      System.Data.Metadata.Edm.EdmType
        System.Data.Metadata.Edm.StructuralType
          System.Data.Metadata.Edm.ComplexType

public class ComplexType : StructuralType

NameDescription
System_CAPS_pubpropertyAbstract

Gets a value indicating whether this type is abstract or not. (Inherited from EdmType.)

System_CAPS_pubpropertyBaseType

Gets the base type of this type.(Inherited from EdmType.)

System_CAPS_pubpropertyBuiltInTypeKind

Gets the built-in type kind for this ComplexType.(Overrides MetadataItem.BuiltInTypeKind.)

System_CAPS_pubpropertyDocumentation

Gets or sets the documentation associated with this type.(Inherited from MetadataItem.)

System_CAPS_pubpropertyFullName

Gets the full name of this type.(Inherited from EdmType.)

System_CAPS_pubpropertyMembers

Gets the list of members on this type.(Inherited from StructuralType.)

System_CAPS_pubpropertyMetadataProperties

Gets the list of properties of the current type.(Inherited from MetadataItem.)

System_CAPS_pubpropertyName

Gets the name of this type.(Inherited from EdmType.)

System_CAPS_pubpropertyNamespaceName

Gets the namespace of this type.(Inherited from EdmType.)

System_CAPS_pubpropertyProperties

Gets the list of properties for this ComplexType.

NameDescription
System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetCollectionType()

Returns an instance of the CollectionType whose element type is this type. (Inherited from EdmType.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodToString()

Returns the full name of this type.(Inherited from EdmType.)

The ComplexType in a conceptual model represents a type that includes a set of properties like an entity type but does not include a key property. For more information about the complex types in a conceptual model, see Complex Type and How to: Define a Model with Complex Types (Entity Framework).

The following code sample gets a metadata workspace from the connection and uses that metadata workspace to retrieve information about the properties of the complex types in the specified model. Note that the metadata workspace is a runtime service component that provides support for retrieving metadata.

The code sample uses a CSpace to specify the model. The CSpace represents the default name for the conceptual model. The code sample uses the CustomerComplexAddr model that is provided in How to: Define a Model with Complex Types (Entity Framework) topic. For an example of the application config file, see Implementing Complex Type (EDM) topic.

using System;
using System.Data;
using System.Collections.ObjectModel;
using System.Data.EntityClient;
using System.Data.Metadata.Edm;

class GetComplexTypeMembersExample
{
  static void Main()
  {
    try
    {
      // Establish a connection to the underlying data provider by 
      // using the connection string specified in the config file.
      using (EntityConnection connection =
        new EntityConnection("Name=CustomerWComplexAddrEntities"))
      {
         // Open the connection.
         connection.Open();

         // Access the metadata workspace.
         MetadataWorkspace workspace = 
            connection.GetMetadataWorkspace();

         // Get properties of complex types.
         GetProperties(workspace, DataSpace.CSpace);
      }
    }
    catch (MetadataException exceptionMetadata)
    {
       Console.WriteLine("MetadataException: {0}",
              exceptionMetadata.Message);
    }
    catch (System.Data.MappingException exceptionMapping)
    {
       Console.WriteLine("MappingException: {0}",
               exceptionMapping.Message);
    }
  }

  public static void GetProperties(MetadataWorkspace workspace, 
      DataSpace model)
  {
    // Get a collection of complex types.
    ReadOnlyCollection<ComplexType> complexTypes =
       workspace.GetItems<ComplexType>(model);

    // Iterate through the collection to get each complex type.
    foreach (ComplexType complexType in complexTypes)
    {
       Console.WriteLine(
         "\n\n***ComplexType Name: {0}, Namespace: {1}",
         complexType.Name,
         complexType.NamespaceName);

       Console.WriteLine(
          "\nGet the properties of this " +
          "ComplexType object ==>");
          // Iterate through the collection to get each property of the 
          // current ComplexType object.
          foreach (EdmProperty property in complexType.Properties)
          {
            Console.Write("   Property Name: {0} ", property.Name);

            Console.WriteLine(
               "   Property declaring Type: {0}, edmtype: {1}," +
               " default: {2}, nullable: {3} ",
               property.DeclaringType, property.TypeUsage.EdmType,
               property.Default, property.Nullable);
          }
      }
  }
}

.NET Framework
Available since 3.5

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: