EntityReference<TEntity> 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示多重性為零或一之關聯的相關端。
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 元素 (CSDL) 。
EntityReference<TEntity> 物件可能會在關聯性 (Relationship) 的另一端具有對應的 EntityCollection<TEntity> (一對多關聯性 (One-To-Many Relationship)) 或 EntityReference<TEntity> (一對一關聯性 (One-To-One Relationship))。 當 EntityReference<TEntity> 和 EntityCollection<TEntity> 模型化相同關聯性的相對端時,關聯性的完整性就會在物件層級維護。
此類別無法獲得繼承。
建構函式
EntityReference<TEntity>() |
建立 EntityReference<TEntity> 的新執行個體。 |
屬性
EntityKey |
傳回相關物件的索引鍵。 (繼承來源 EntityReference) |
IsLoaded |
取得值,這個值指出所有相關物件是否都已經載入。 (繼承來源 RelatedEnd) |
RelationshipName |
取得這個相關端所參與之關聯性的名稱。 (繼承來源 RelatedEnd) |
RelationshipSet |
取得相關端中繼資料的參考。 (繼承來源 RelatedEnd) |
SourceRoleName |
取得位於關聯性來源端的角色名稱。 (繼承來源 RelatedEnd) |
TargetRoleName |
取得位於關聯性目標端的角色名稱。 (繼承來源 RelatedEnd) |
Value |
取得或設定這個 EntityReference<TEntity> 所傳回的相關物件。 |
方法
事件
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) |