Esta documentación está archivada y no tiene mantenimiento.

Cómo: Devolver un objeto concreto usando su clave (Entity Framework)

En este tema se demuestra cómo recuperar una entidad por los valores de sus claves en lugar de creando y ejecutando explícitamente una consulta de objeto. Los ejemplos de este tema se basan en el Modelo AdventureWorks Sales. Para ejecutar el código de estos ejemplos, debe haber agregado ya el modelo AdventureWorks Sales al proyecto y haber configurado el proyecto para usar Entity Framework . Para ello, complete los procedimientos de Cómo configurar manualmente un proyecto de Entity Framework y Cómo: Definir manualmente los archivos de asignación y modelo (Entity Framework). También puede utilizar el Asistente para Entity Data Model con el fin de definir el modelo AdventureWorks Sales. Para obtener más información, vea Cómo usar el Asistente para Entity Data Model (Entity Framework).

Ejemplo

En este ejemplo se utiliza el método GetObjectByKey en ObjectContext para devolver un objeto con la EntityKey especificada en el contexto del objeto. En este ejemplo se atiende la ObjectNotFoundException que se produce cuando la EntityKey suministrada no se corresponde con una entidad existente. Para evitar la ObjectNotFoundException, llame a TryGetObjectByKey, que devuelve false en lugar de iniciar una excepción.

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());
    }
}

Vea también

Mostrar: