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


ObjectContext.GetObjectByKey(EntityKey) Метод

Определение

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

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.

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

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

См. также раздел