ObjectContext.GetObjectByKey(EntityKey) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
傳回具有指定之實體索引鍵的物件。
public:
System::Object ^ GetObjectByKey(System::Data::EntityKey ^ key);
public object GetObjectByKey (System.Data.EntityKey key);
member this.GetObjectByKey : System.Data.EntityKey -> obj
Public Function GetObjectByKey (key As EntityKey) As Object
參數
- key
- EntityKey
要尋找之物件的索引鍵。
傳回
Object,它是實體類型的執行個體。
例外狀況
key
參數為 null
。
在 ObjectStateManager 或資料來源中找不到此物件。
範例
此範例會為指定類型的實體建立 , EntityKey 然後依索引鍵擷取實體。
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
try
{
// Define the entity key values.
IEnumerable<KeyValuePair<string, object>> entityKeyValues =
new KeyValuePair<string, object>[] {
new KeyValuePair<string, object>("SalesOrderID", 43680) };
// Create the key for a specific SalesOrderHeader object.
EntityKey key = new EntityKey("AdventureWorksEntities.SalesOrderHeaders", entityKeyValues);
// Get the object from the context or the persisted store by its key.
SalesOrderHeader order =
(SalesOrderHeader)context.GetObjectByKey(key);
Console.WriteLine("SalesOrderID: {0} Order Number: {1}",
order.SalesOrderID, order.SalesOrderNumber);
}
catch (ObjectNotFoundException ex)
{
Console.WriteLine(ex.ToString());
}
}
備註
GetObjectByKey 會嘗試從 EntityKey 擷取具有指定之 ObjectStateManager 的物件。 如果此物件目前尚未載入物件內容中,系統就會執行查詢,以便嘗試從資料來源中傳回此物件。 如需詳細資訊,請參閱物件查詢。
找不到此物件時,GetObjectByKey 就會引發 ObjectNotFoundException。 若要避免處理這個例外狀況,請改用 TryGetObjectByKey 方法。
這個方法將會傳回處於 Deleted 狀態中的物件。
暫存索引鍵無法用來從資料來源中傳回物件。