EntityReference<TEntity> Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет связанный конец ассоциации с кратностью нуля или одного.
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> возвращается свойством навигации, если связанный конец имеет кратность нуля или одного. Дополнительные сведения см. в разделе NavigationProperty Element (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) |