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> для изменения связи между объектом 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) |