Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

ObjectStateEntry (Clase)

Mantiene la información de estado y de clave para los objetos y las relaciones, así como el seguimiento de los cambios para las propiedades de objeto.

System.Object
  System.Data.Objects.ObjectStateEntry

Espacio de nombres:  System.Data.Objects
Ensamblado:  System.Data.Entity (en System.Data.Entity.dll)

public abstract class ObjectStateEntry : IEntityChangeTracker

El tipo ObjectStateEntry expone los siguientes miembros.

  NombreDescripción
Propiedad públicaCurrentValuesObtiene los valores de propiedad actuales del objeto o la relación asociados a este objeto ObjectStateEntry.
Propiedad públicaEntityObtiene el objeto asociado a este objeto ObjectStateEntry.
Propiedad públicaEntityKeyObtiene la clase EntityKey asociada al objeto ObjectStateEntry.
Propiedad públicaEntitySetObtiene el objeto EntitySetBase para el objeto o relación asociados a este objeto ObjectStateEntry.
Propiedad públicaIsRelationshipObtiene un valor booleano que indica si este objeto ObjectStateEntry representa una relación.
Propiedad públicaObjectStateManagerObtiene ObjectStateManager para este ObjectStateEntry.
Propiedad públicaOriginalValuesObtiene la versión de solo lectura de los valores originales del objeto o la relación asociados a este objeto ObjectStateEntry. Para obtener valores originales actualizables, use GetUpdatableOriginalValues.
Propiedad públicaRelationshipManagerDevuelve una instancia de RelationshipManager para el objeto representado por la entrada.
Propiedad públicaStateObtiene el estado de este objeto ObjectStateEntry.
Arriba

  NombreDescripción
Método públicoAcceptChangesAcepta los valores actuales como valores originales.
Método públicoApplyCurrentValuesEstablece los valores actuales de la entrada para que coincidan con los valores de propiedad de un objeto proporcionado.
Método públicoApplyOriginalValuesEstablece los valores originales de la entrada para que coincidan con los valores de propiedad de un objeto proporcionado.
Método públicoChangeStateCambia el estado de la entrada para el valor de EntityState especificado.
Método públicoDeleteMarca una entidad como eliminada.
Método públicoEquals(Object)Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegidoFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoGetHashCodeActúa como función hash para un tipo concreto. (Se hereda de Object).
Método públicoGetModifiedPropertiesDevuelve los nombres de las propiedades de un objeto que han cambiado desde que se llamó a SaveChanges por última vez.
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoGetUpdatableOriginalValuesObtiene la versión actualizable de los valores originales del objeto asociado a este objeto ObjectStateEntry.
Método protegidoMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método públicoSetModifiedEstablece el estado del objeto o la relación en Modified.
Método públicoSetModifiedPropertyMarca la propiedad especificada como modificada.
Método públicoToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privadoIEntityChangeTracker.EntityComplexMemberChangedNotifica al administrador de estado que una propiedad compleja ha cambiado.
Implementación explícita de interfacesMétodo privadoIEntityChangeTracker.EntityComplexMemberChangingNotifica al administrador de estado que hay un cambio pendiente en una propiedad compleja.
Implementación explícita de interfacesMétodo privadoIEntityChangeTracker.EntityMemberChangedNotifica al administrador de estado que una propiedad ha cambiado.
Implementación explícita de interfacesMétodo privadoIEntityChangeTracker.EntityMemberChangingNotifica al administrador de estado que hay un cambio pendiente en una propiedad.
Implementación explícita de interfacesPropiedad privadaIEntityChangeTracker.EntityStateObtiene la enumeración EntityState para el objeto ObjectStateEntry.
Arriba

Mantiene el EntityState, los valores de EntityKey y los valores originales de un objeto o una relación. Asimismo, administra la lista de propiedades modificadas.

Hay una instancia de una ObjectStateEntry asociada a cada instancia de relación de tipo de entidad. Un objeto se asocia a una ObjectStateEntry solo si está en el ObjectStateManager.

Cuando se desasocia un objeto que tiene una relación, la información que mantiene la ObjectStateEntry se reduce a lo estrictamente necesario para mantener la relación.

Un objeto ObjectStateEntry no puede tener la misma clave que otro objeto ObjectStateEntry en el mismo ObjectStateManager.

No se pueden modificar los valores de clave de una entidad persistente. Las entidades en los estados sin modificar, modificado y eliminado son entidades persistentes.

El ejemplo de este tema se basa en el Adventure Works Sales Model. En el ejemplo, se obtiene la ObjectStateEntry para la EntityKey especificada del ObjectStateManager. A continuación, se obtiene el valor actual de la propiedad SalesOrderHeader.PurchaseOrderNumber, se cambia el valor de la propiedad y se enumera la colección de propiedades modificadas.


int orderId = 43680;

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

    // Get ObjectStateEntry from EntityKey.
    ObjectStateEntry stateEntry =
        context.ObjectStateManager
        .GetObjectStateEntry(((IEntityWithKey)order).EntityKey);

    //Get the current value of SalesOrderHeader.PurchaseOrderNumber.
    CurrentValueRecord rec1 = stateEntry.CurrentValues;
    string oldPurchaseOrderNumber =
        (string)rec1.GetValue(rec1.GetOrdinal("PurchaseOrderNumber"));

    //Change the value.
    order.PurchaseOrderNumber = "12345";
    string newPurchaseOrderNumber =
        (string)rec1.GetValue(rec1.GetOrdinal("PurchaseOrderNumber"));

    // Get the modified properties.
    IEnumerable<string> modifiedFields = stateEntry.GetModifiedProperties();
    foreach (string s in modifiedFields)
        Console.WriteLine("Modified field name: {0}\n Old Value: {1}\n New Value: {2}",
            s, oldPurchaseOrderNumber, newPurchaseOrderNumber);

    // Get the Entity that is associated with this ObjectStateEntry.
    SalesOrderHeader associatedEnity = (SalesOrderHeader)stateEntry.Entity;
    Console.WriteLine("Associated Enity's ID: {0}", associatedEnity.SalesOrderID);
}


.NET Framework

Compatible con: 4, 3.5 SP1

.NET Framework Client Profile

Compatible con: 4

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft