Freigeben über


ObjectStateManager.GetObjectStateEntry Methode

Definition

Gibt einen ObjectStateEntry Wert für einen bestimmten Objekt- oder Beziehungseintrag zurück.

Überlädt

Name Beschreibung
GetObjectStateEntry(EntityKey)

Gibt einen ObjectStateEntry Wert für den Objekt- oder Beziehungseintrag mit dem angegebenen Schlüssel zurück.

GetObjectStateEntry(Object)

Gibt einen ObjectStateEntry Wert für das angegebene Objekt zurück.

GetObjectStateEntry(EntityKey)

Gibt einen ObjectStateEntry Wert für den Objekt- oder Beziehungseintrag mit dem angegebenen Schlüssel zurück.

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

Parameter

key
EntityKey

Der EntityKey.

Gibt zurück

Das entsprechende ObjectStateEntry für die angegebene .EntityKey

Ausnahmen

Wann key ist null.

Wenn die angegebene Eigenschaft key im Zustands-Manager nicht gefunden werden kann.

Es ist keine Entität mit dem angegebenen EntityKey Objekt vorhanden.ObjectStateManager

Beispiele

In diesem Beispiel wird das ObjectStateEntry für die angegebene Eigenschaft aus der ObjectStateManager.EntityKey Anschließend wird der aktuelle Wert der SalesOrderHeader.PurchaseOrderNumber Eigenschaft abgerufen, der Wert der Eigenschaft geändert und die Auflistung geänderter Eigenschaften aufgezählt.

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

Hinweise

Verwenden Sie die TryGetObjectStateEntry(EntityKey, ObjectStateEntry) Methode, um ein ObjectStateEntry Objekt zurückzugeben, ohne die InvalidOperationException von der GetObjectStateEntry(EntityKey) Methode ausgelöste Behandeln zu müssen.

Gilt für:

GetObjectStateEntry(Object)

Gibt einen ObjectStateEntry Wert für das angegebene Objekt zurück.

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

Parameter

entity
Object

Der Object , zu dem die abgerufene ObjectStateEntry Datei gehört.

Gibt zurück

Das entsprechende ObjectStateEntry für die angegebene .Object

Ausnahmen

Es ist keine Entität für die angegebene Object Entität in der ObjectStateManager.

Hinweise

Verwenden Sie die TryGetObjectStateEntry(Object, ObjectStateEntry) Methode, um ein ObjectStateEntry Objekt zurückzugeben, ohne die InvalidOperationException von der GetObjectStateEntry(Object) Methode ausgelöste Behandeln zu müssen.

Gilt für: