Compartir a través de


ObjectStateManager.GetObjectStateEntry Método

Definición

Devuelve una ObjectStateEntry para una entrada de objeto o de relación específica.

Sobrecargas

GetObjectStateEntry(EntityKey)

Devuelve una ObjectStateEntry para la entrada de objeto o de relación con la clave especificada.

GetObjectStateEntry(Object)

Devuelve una ObjectStateEntry para el objeto especificado.

GetObjectStateEntry(EntityKey)

Devuelve una ObjectStateEntry para la entrada de objeto o de relación con la clave especificada.

public:
 System::Data::Objects::ObjectStateEntry ^ GetObjectStateEntry(System::Data::EntityKey ^ key);
public System.Data.Objects.ObjectStateEntry GetObjectStateEntry (System.Data.EntityKey key);
member this.GetObjectStateEntry : System.Data.EntityKey -> System.Data.Objects.ObjectStateEntry
Public Function GetObjectStateEntry (key As EntityKey) As ObjectStateEntry

Parámetros

key
EntityKey

El parámetro de cadena de consulta EntityKey.

Devoluciones

ObjectStateEntry correspondiente al EntityKey especificado.

Excepciones

Cuando key es null.

Cuando los key especificados no se pueden encontrar en el administrador estatal.

No existe ninguna entidad con la EntityKey especificada en el ObjectStateManager.

Ejemplos

En este ejemplo se obtiene para ObjectStateEntry el objeto especificado EntityKey de .ObjectStateManager A continuación, obtiene el valor actual de la SalesOrderHeader.PurchaseOrderNumber propiedad, cambia el valor de la propiedad y enumera a través de la colección de propiedades modificadas.

// Specify the order to update.
int orderId = 43680;

using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    try
    {
        var order = (from o in context.SalesOrderHeaders
                     where o.SalesOrderID == orderId
                     select o).First();

        // Change the status of an existing order.
        order.Status = 1;

        // Delete the first item in the order.
        context.DeleteObject(order.SalesOrderDetails.First());

        // Create a new SalesOrderDetail object.
        // You can use the static CreateObjectName method (the Entity Framework
        // adds this method to the generated entity types) instead of the new operator:
        // SalesOrderDetail.CreateSalesOrderDetail(1, 0, 2, 750, 1, (decimal)2171.2942, 0, 0,
        //                                         Guid.NewGuid(), DateTime.Today));
        SalesOrderDetail detail = new SalesOrderDetail
        {
            SalesOrderID = 0,
            SalesOrderDetailID = 0,
            OrderQty = 2,
            ProductID = 750,
            SpecialOfferID = 1,
            UnitPrice = (decimal)2171.2942,
            UnitPriceDiscount = 0,
            LineTotal = 0,
            rowguid = Guid.NewGuid(),
            ModifiedDate = DateTime.Now
        };
        order.SalesOrderDetails.Add(detail);

        // Get the ObjectStateEntry for the order.
        ObjectStateEntry stateEntry =
            context.ObjectStateManager
            .GetObjectStateEntry(order);
        Console.WriteLine("State before SaveChanges() is called: {0}",
            stateEntry.State.ToString());

        // Save changes in the object context to the database.
        int changes = context.SaveChanges();

        Console.WriteLine("State after SaveChanges() is called: {0}",
            stateEntry.State.ToString());

        Console.WriteLine(changes.ToString() + " changes saved!");
        Console.WriteLine("Updated item for order ID: "
            + order.SalesOrderID.ToString());

        // Iterate through the collection of SalesOrderDetail items.
        foreach (SalesOrderDetail item in order.SalesOrderDetails)
        {
            Console.WriteLine("Item ID: "
                + item.SalesOrderDetailID.ToString() + "  Product: "
                + item.ProductID.ToString() + "  Quantity: "
                + item.OrderQty.ToString());
        }
    }
    catch (UpdateException ex)
    {
        Console.WriteLine(ex.ToString());
    }
}

Comentarios

Use el TryGetObjectStateEntry(EntityKey, ObjectStateEntry) método para devolver un ObjectStateEntry objeto sin tener que controlar el InvalidOperationException generado por el GetObjectStateEntry(EntityKey) método .

Se aplica a

GetObjectStateEntry(Object)

Devuelve una ObjectStateEntry para el objeto especificado.

public:
 System::Data::Objects::ObjectStateEntry ^ GetObjectStateEntry(System::Object ^ entity);
public System.Data.Objects.ObjectStateEntry GetObjectStateEntry (object entity);
member this.GetObjectStateEntry : obj -> System.Data.Objects.ObjectStateEntry
Public Function GetObjectStateEntry (entity As Object) As ObjectStateEntry

Parámetros

entity
Object

Object al que pertenece la ObjectStateEntry recuperada.

Devoluciones

ObjectStateEntry correspondiente al Object especificado.

Excepciones

No existe ninguna entidad para el Object especificado en el ObjectStateManager.

Comentarios

Use el TryGetObjectStateEntry(Object, ObjectStateEntry) método para devolver un ObjectStateEntry objeto sin tener que controlar el InvalidOperationException generado por el GetObjectStateEntry(Object) método .

Se aplica a