Sdílet prostřednictvím


ObjectStateManager.GetObjectStateEntry Metoda

Definice

Vrátí hodnotu ObjectStateEntry pro určitý objekt nebo položku relace.

Přetížení

GetObjectStateEntry(EntityKey)

Vrátí hodnotu ObjectStateEntry pro objekt nebo položku relace se zadaným klíčem.

GetObjectStateEntry(Object)

Vrátí hodnotu ObjectStateEntry pro zadaný objekt.

GetObjectStateEntry(EntityKey)

Vrátí hodnotu ObjectStateEntry pro objekt nebo položku relace se zadaným klíčem.

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

Parametry

key
EntityKey

Hodnota EntityKey

Návraty

Odpovídající ObjectStateEntry pro danou EntityKey.

Výjimky

Když key je null.

Pokud zadaný key parametr nelze najít ve správci stavu.

V objektu neexistuje žádná entita se zadaným EntityKey parametrem ObjectStateManager.

Příklady

Tento příklad získá ObjectStateEntry pro danou EntityKey hodnotu z .ObjectStateManager Pak získá aktuální hodnotu SalesOrderHeader.PurchaseOrderNumber vlastnosti, změní hodnotu vlastnosti a vytvoří výčet prostřednictvím kolekce změněných vlastností.

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

Poznámky

Použijte metodu TryGetObjectStateEntry(EntityKey, ObjectStateEntry) k vrácení objektu ObjectStateEntry , aniž byste museli zpracovávat InvalidOperationException objekt vyvolaný metodou GetObjectStateEntry(EntityKey) .

Platí pro

GetObjectStateEntry(Object)

Vrátí hodnotu ObjectStateEntry pro zadaný objekt.

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

Parametry

entity
Object

Hodnota Object , do které načtený ObjectStateEntry patří.

Návraty

Odpovídající ObjectStateEntry pro danou Object.

Výjimky

V objektu neexistuje žádná entita pro zadanou Object entitu ObjectStateManager.

Poznámky

Použijte metodu TryGetObjectStateEntry(Object, ObjectStateEntry) k vrácení objektu ObjectStateEntry , aniž byste museli zpracovávat InvalidOperationException objekt vyvolaný metodou GetObjectStateEntry(Object) .

Platí pro