Поделиться через


EntityReference<TEntity> Класс

Определение

Представляет связанный элемент ассоциации, имеющий кратность 0 или 1.

generic <typename TEntity>
 where TEntity : class, IEntityWithRelationshipspublic ref class EntityReference sealed : System::Data::Objects::DataClasses::EntityReference
generic <typename TEntity>
 where TEntity : classpublic ref class EntityReference sealed : System::Data::Objects::DataClasses::EntityReference
[System.Runtime.Serialization.DataContract]
[System.Serializable]
public sealed class EntityReference<TEntity> : System.Data.Objects.DataClasses.EntityReference where TEntity : class, IEntityWithRelationships
[System.Runtime.Serialization.DataContract]
[System.Serializable]
public sealed class EntityReference<TEntity> : System.Data.Objects.DataClasses.EntityReference where TEntity : class
[<System.Runtime.Serialization.DataContract>]
[<System.Serializable>]
type EntityReference<'Entity (requires 'Entity : null and 'Entity :> IEntityWithRelationships)> = class
    inherit EntityReference
[<System.Runtime.Serialization.DataContract>]
[<System.Serializable>]
type EntityReference<'Entity (requires 'Entity : null)> = class
    inherit EntityReference
Public NotInheritable Class EntityReference(Of TEntity)
Inherits EntityReference

Параметры типа

TEntity

Тип сущности ссылки.

Наследование
EntityReference<TEntity>
Атрибуты

Примеры

В данном примере показывается, как можно использовать объект EntityReference<TEntity> для изменения связи между объектом SalesOrderHeader и связанным объектом Address, представляющим адрес доставки для заказа.


// Define the order and new address IDs.
int orderId = 43669;
int addressId = 26;

using (AdventureWorksEntities context
    = new AdventureWorksEntities())
{
    // Get the billing address to change to.
    Address address =
        context.Addresses.Single(c => c.AddressID == addressId);

    // Get the order being changed.
    SalesOrderHeader order =
        context.SalesOrderHeaders.Single(o => o.SalesOrderID == orderId);

    // You do not have to call the Load method to load the addresses for the order,
    // because  lazy loading is set to true
    // by the constructor of the AdventureWorksEntities object.
    // With  lazy loading set to true the related objects are loaded when
    // you access the navigation property. In this case Address.

    // Write the current billing street address.
    Console.WriteLine("Current street: "
        + order.Address.AddressLine1);

    // Change the billing address.
    if (!order.Address.Equals(address))
    {
        // Use Address navigation property to change the association.
        order.Address = address;

        // Write the changed billing street address.
        Console.WriteLine("Changed street: "
            + order.Address.AddressLine1);
    }

    // If the address change succeeds, save the changes.
    context.SaveChanges();

    // Write the current billing street address.
    Console.WriteLine("Current street: "
        + order.Address.AddressLine1);
}

Комментарии

Объект EntityReference<TEntity> возвращается свойством навигации, если связанный элемент имеет кратность 0 или 1. Дополнительные сведения см. в разделе Элемент NavigationProperty (CSDL).

Объекту EntityReference<TEntity> в качестве второго элемента связи может соответствовать объект EntityCollection<TEntity> (связь «один ко многим») или объект EntityReference<TEntity> (связь «один к одному»). Если объекты EntityReference<TEntity> и EntityCollection<TEntity> являются противоположными элементами одной и той же связи, то целостность связи поддерживается на уровне объектов.

Этот класс не наследуется.

Конструкторы

EntityReference<TEntity>()

Создает новый экземпляр EntityReference<TEntity>.

Свойства

EntityKey

Возвращает ключ для связанного объекта.

(Унаследовано от EntityReference)
IsLoaded

Получает значение, показывающее, все ли связанные объекты загружены.

(Унаследовано от RelatedEnd)
RelationshipName

Возвращает имя связи, в которой участвует этот связанный элемент.

(Унаследовано от RelatedEnd)
RelationshipSet

Получает ссылку на метаданные для связанного окончания.

(Унаследовано от RelatedEnd)
SourceRoleName

Возвращает имя роли в исходном элементе связи.

(Унаследовано от RelatedEnd)
TargetRoleName

Получает имя роли в целевом окончании отношения.

(Унаследовано от RelatedEnd)
Value

Возвращает или задает связанный объект, возвращаемый этим объектом EntityReference<TEntity>.

Методы

Attach(TEntity)

Создает связь «многие к одному» или «один к одному» между двумя объектами в контексте объекта.

Attach<TEntity>(IEnumerable<TEntity>, Boolean)

Определяет связь между двумя присоединенными объектами.

(Унаследовано от RelatedEnd)
CreateSourceQuery()

Создает эквивалентный запрос объектов, возвращающий связанный объект.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetEnumerator()

Возвращает интерфейс IEnumerator, проходящий по коллекции связанных объектов.

(Унаследовано от RelatedEnd)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
Load()

В случае переопределения в производном классе загружает связанный объект или объекты в связанный элемент с параметром слияния по умолчанию.

(Унаследовано от RelatedEnd)
Load(MergeOption)

Загружает связанный объект для этого объекта EntityReference<TEntity> с указанным параметром слияния.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Merge<TEntity>(IEnumerable<TEntity>, MergeOption, Boolean)

Выполняет слияние связанных сущностей в локальную коллекцию EntityCollection<TEntity>.

(Унаследовано от RelatedEnd)
OnDeserialized(StreamingContext)

Используется внутренне для десериализации объектов сущности вместе с экземплярами RelationshipManager.

(Унаследовано от RelatedEnd)
OnRefDeserialized(StreamingContext)

Данный метод используется внутренне для сериализации связанных объектов сущности.

OnSerializing(StreamingContext)

Данный метод используется внутренне для сериализации связанных объектов сущности.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
ValidateEntityForAttach<TEntity>(TEntity, Int32, Boolean)

Определяет, можно ли присоединить объект к локальной коллекции или ссылке.

(Унаследовано от RelatedEnd)
ValidateLoad<TEntity>(MergeOption, String)

Подтверждает, что связанный объект или объекты можно успешно загрузить в локальную коллекцию или ссылку.

(Унаследовано от RelatedEnd)
ValidateOwnerForAttach()

Подтверждает, что объект, которому принадлежит связанный элемент, поддерживает операцию присоединения.

(Унаследовано от RelatedEnd)

События

AssociationChanged

Происходит, если изменяется связанный элемент.

(Унаследовано от RelatedEnd)

Явные реализации интерфейса

IRelatedEnd.Add(IEntityWithRelationships)

Добавляет объект в связанный элемент.

(Унаследовано от RelatedEnd)
IRelatedEnd.Add(Object)

Добавляет объект в связанный элемент.

(Унаследовано от RelatedEnd)
IRelatedEnd.Attach(IEntityWithRelationships)

Присоединяет объект к связанному элементу.

(Унаследовано от RelatedEnd)
IRelatedEnd.Attach(Object)

Присоединяет объект к связанному окончанию.

(Унаследовано от RelatedEnd)
IRelatedEnd.CreateSourceQuery()

Возвращает интерфейс IEnumerable, который представляет объекты, принадлежащие к связанному элементу.

(Унаследовано от RelatedEnd)
IRelatedEnd.Remove(IEntityWithRelationships)

Удаляет объект из связанного элемента коллекции.

(Унаследовано от RelatedEnd)
IRelatedEnd.Remove(Object)

Удаляет объект из связанного окончания, если объект является его частью.

(Унаследовано от RelatedEnd)

Применяется к