PropertyKind Enumeration

PropertyKind Enumeration

.NET Framework (current version)
 

Specifies the kinds of item attributes in the conceptual model.

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

public enum PropertyKind

Member nameDescription
Extended

An enumeration member indicating that an item attribute is Extended.

System

An enumeration member indicating that an item attribute is System.

The following code sample demonstrates how to get a metadata workspace from the connection and then use that metadata workspace to retrieve information about the extended properties in the specified data 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 AdventureWorks Model that is provided in the da87d29e-8c89-4310-bbac-5cbd062930a7topic. For an example of the application config file, see 84c01270-90ba-467b-ad24-df10c1ca8f45.

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

class UsePropertyKindExample
{
   static void Main(string[] args)
   {
     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=AdventureworksContext"))
       {
          // Open the connection.
          connection.Open();

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

          // Display the extended properties in the conceptual model.
          DisplayProperties(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 DisplayProperties(
        MetadataWorkspace workspace, DataSpace model)
   {
      // Get a collection of the entity containers.
      ReadOnlyCollection<EntityContainer> containers =
          workspace.GetItems<EntityContainer>(model);

      // Iterate through the collection to get each entity container.
      foreach (EntityContainer container in containers)
      {
          // Display the extended properties for the entity container.
          DisplayExtendedProperties(container);

          // Iterate through the collection to get each entity set.
          foreach (EntitySetBase baseSet in container.BaseEntitySets)
          {
              // Check whether this instance is an EntitySet.
              if (baseSet is EntitySet)
              {
                 // Display the extended properties for the entity set.
                 DisplayExtendedProperties(baseSet);
              }
          }
      }

      // Get a collection of the entity types.
      ReadOnlyCollection<EntityType> entities = 
             workspace.GetItems<EntityType>(model);

      // Iterate through the collection to get each entity type.
      foreach (EntityType entity in entities)
      {
         // Display the extended properties for the entity type.
         DisplayExtendedProperties(entity);
      }
   }

   private static void DisplayExtendedProperties(MetadataItem item)
   {
     foreach (MetadataProperty property in item.MetadataProperties)
     {
         if (property.PropertyKind == PropertyKind.Extended)
           Console.WriteLine(string.Format("\t{0}\t{1}\t{2}", 
             item.GetType().Name, property.Name, property.Value));
     }
   }
}

.NET Framework
Available since 3.5
Return to top
Show:
© 2016 Microsoft