ComplexType Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa um tipo complexo num modelo conceptual.
public ref class ComplexType : System::Data::Metadata::Edm::StructuralType
public class ComplexType : System.Data.Metadata.Edm.StructuralType
type ComplexType = class
inherit StructuralType
Public Class ComplexType
Inherits StructuralType
- Herança
Exemplos
O exemplo de código seguinte obtém um espaço de trabalho de metadados a partir da ligação e utiliza esse espaço de trabalho de metadados para obter informações sobre as propriedades dos tipos complexos no modelo especificado. Note que o espaço de trabalho de metadados é um componente de serviço em tempo de execução que oferece suporte para a recuperação de metadados.
O exemplo de código usa a CSpace para especificar o modelo. O CSpace representa o nome padrão para o modelo conceptual. O exemplo de código utiliza o modelo CustomerComplexAddr fornecido no tópico Como: Definir um Modelo com Tipos Complexos (Entity Framework ).
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);
}
}
}
}
Imports System
Imports System.Collections.ObjectModel
Imports System.Data
Imports System.Data.EntityClient
Imports System.Data.Metadata.Edm
Class GetComplexTypeMembersExample
Public Shared Sub Main()
Try
' Establish a connection to the underlying data provider by
' using the connection string specified in the config file.
Using connection As EntityConnection = _
New EntityConnection("Name=CustomerWComplexAddrEntities")
' Open the connection.
connection.Open()
' Access the metadata workspace.
Dim workspace As MetadataWorkspace = _
connection.GetMetadataWorkspace
' Get properties of complex types.
GetProperties(workspace, DataSpace.CSpace)
End Using
Catch exceptionMetadata As MetadataException
Console.WriteLine("MetadataException: {0}", _
exceptionMetadata.Message)
Catch exceptionMapping As MappingException
Console.WriteLine("MappingException: {0}", _
exceptionMapping.Message)
End Try
End Sub
Public Shared Sub GetProperties( _
ByVal workspace As MetadataWorkspace, ByVal model As DataSpace)
' Get a collection of complex types.
Dim complexTypes As ReadOnlyCollection(Of ComplexType) = _
workspace.GetItems(Of ComplexType)(model)
' Iterate through the collection to get each complex type.
Dim complexType As ComplexType
For Each complexType In complexTypes
Console.WriteLine( _
ControlChars.Lf & ControlChars.Lf & _
"***ComplexType Name: {0}, Namespace: {1}", _
complexType.Name, complexType.NamespaceName)
Console.WriteLine(ControlChars.Lf & _
"Get the properties of this ComplexType object ==>")
' Iterate through the collection to get each property of the
' current ComplexType object.
Dim property1 As EdmProperty
For Each property1 In complexType.Properties
Console.Write(" Property Name: {0} ", property1.Name)
Console.WriteLine( _
" Property declaring Type: {0}, edmtype: {1}, " + _
"default: {2}, nullable: {3} ", _
New Object() {property1.DeclaringType, _
property1.TypeUsage.EdmType, _
property1.Default, property1.Nullable})
Next
Next
End Sub
End Class
Observações
O ComplexType num modelo conceptual representa um tipo que inclui um conjunto de propriedades como um tipo de entidade, mas não inclui uma propriedade chave. Para mais informações sobre os tipos complexos num modelo conceptual, veja Tipo Complexo e Como: Definir um Modelo com Tipos Complexos (Entity Framework).
Propriedades
| Name | Description |
|---|---|
| Abstract |
Recebe um valor que indica se este tipo é abstrato ou não. (Herdado de EdmType) |
| BaseType |
Obtém o tipo base deste tipo. (Herdado de EdmType) |
| BuiltInTypeKind |
Tem o tipo incorporado para isto ComplexType. |
| Documentation |
Obtém ou define a documentação associada a este tipo. (Herdado de MetadataItem) |
| FullName |
Recebe o nome completo deste tipo. (Herdado de EdmType) |
| Members |
Obtém a lista de membros deste tipo. (Herdado de StructuralType) |
| MetadataProperties |
Obtém a lista de propriedades do tipo atual. (Herdado de MetadataItem) |
| Name |
Recebe o nome deste tipo. (Herdado de EdmType) |
| NamespaceName |
Recebe o namespace deste tipo. (Herdado de EdmType) |
| Properties |
Obtém a lista de propriedades para isto ComplexType. |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetCollectionType() |
Devolve uma instância de cujo CollectionType tipo de elemento é este tipo. (Herdado de EdmType) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve o nome completo deste tipo. (Herdado de EdmType) |