Condividi tramite


ObjectStateManager.GetObjectStateEntry Metodo

Definizione

Restituisce un oggetto ObjectStateEntry per una voce di oggetto o di relazione specifica.

Overload

GetObjectStateEntry(EntityKey)

Restituisce un oggetto ObjectStateEntry per la voce di oggetto o di relazione con la chiave specificata.

GetObjectStateEntry(Object)

Restituisce un oggetto ObjectStateEntry per l'oggetto specificato.

GetObjectStateEntry(EntityKey)

Restituisce un oggetto ObjectStateEntry per la voce di oggetto o di relazione con la chiave specificata.

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

Parametri

key
EntityKey

Oggetto EntityKey.

Restituisce

Oggetto ObjectStateEntry corrispondente per l'oggetto EntityKey specificato.

Eccezioni

Quando key è null.

Quando il parametro key specificato non può essere trovato nel gestore degli stati.

Nell'oggetto EntityKey non è presente alcuna entità con l'oggetto ObjectStateManager specificato.

Esempio

In questo esempio viene ottenuto l'oggetto per l'oggetto ObjectStateEntry specificato EntityKey dall'oggetto ObjectStateManager. Ottiene quindi il valore corrente della proprietà, modifica il valore della SalesOrderHeader.PurchaseOrderNumber proprietà ed enumera l'insieme di proprietà modificate.

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

Commenti

Utilizzare il TryGetObjectStateEntry(EntityKey, ObjectStateEntry) metodo per restituire un ObjectStateEntry oggetto senza dover gestire l'oggetto InvalidOperationExceptionGetObjectStateEntry(EntityKey) generato dal metodo .

Si applica a

GetObjectStateEntry(Object)

Restituisce un oggetto ObjectStateEntry per l'oggetto specificato.

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

Parametri

entity
Object

Oggetto Object a cui appartiene l'oggetto ObjectStateEntry recuperato.

Restituisce

Oggetto ObjectStateEntry corrispondente per l'oggetto Object specificato.

Eccezioni

Nell'oggetto Object non è presente alcuna entità per l'oggetto ObjectStateManager specificato.

Commenti

Utilizzare il TryGetObjectStateEntry(Object, ObjectStateEntry) metodo per restituire un ObjectStateEntry oggetto senza dover gestire l'oggetto InvalidOperationExceptionGetObjectStateEntry(Object) generato dal metodo .

Si applica a