ComplexType Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет сложный тип в концептуальной модели.
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
- Наследование
Примеры
Следующий пример кода получает рабочую область метаданных из подключения и использует ее для получения сведений о свойствах сложных типов в указанной модели. Обратите внимание, что рабочая область метаданных — это служебный компонент времени выполнения, который обеспечивает поддержку извлечения метаданных.
В образце кода для указания модели используется элемент CSpace. Элемент CSpace представляет собой имя по умолчанию для концептуальной модели. В примере кода используется модель CustomerComplexAddr, приведенная в разделе Практическое руководство. Определение модели со сложными типами (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
Комментарии
в ComplexType концептуальной модели представляет тип, который включает набор свойств, таких как тип сущности, но не включает свойство ключа. Дополнительные сведения о сложных типах в концептуальной модели см. в разделах Сложный тип и Практическое руководство. Определение модели со сложными типами (Entity Framework).
Свойства
Abstract |
Возвращает значение, указывающее, является ли тип абстрактным. (Унаследовано от EdmType) |
BaseType |
Возвращает базовый тип этого типа. (Унаследовано от EdmType) |
BuiltInTypeKind |
Возвращает разновидность встроенного типа для этой функции ComplexType. |
Documentation |
Возвращает или задает документацию, связанную с этим типом. (Унаследовано от MetadataItem) |
FullName |
Возвращает полное имя этого типа. (Унаследовано от EdmType) |
Members |
Возвращает список элементов для этого типа. (Унаследовано от StructuralType) |
MetadataProperties |
Возвращает список свойств текущего типа. (Унаследовано от MetadataItem) |
Name |
Возвращает имя этого типа. (Унаследовано от EdmType) |
NamespaceName |
Возвращает пространство имен этого типа. (Унаследовано от EdmType) |
Properties |
Получает список свойств для данного ComplexType. |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetCollectionType() |
Возвращает экземпляр CollectionType, элементы которого имеют этот тип. (Унаследовано от EdmType) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает полное имя этого типа. (Унаследовано от EdmType) |