Share via


ObjectStateManager.GetObjectStateEntry Metode

Definisi

Mengembalikan ObjectStateEntry untuk objek atau entri hubungan tertentu.

Overload

GetObjectStateEntry(EntityKey)

Mengembalikan ObjectStateEntry untuk entri objek atau hubungan dengan kunci yang ditentukan.

GetObjectStateEntry(Object)

Mengembalikan ObjectStateEntry untuk objek yang ditentukan.

GetObjectStateEntry(EntityKey)

Mengembalikan ObjectStateEntry untuk entri objek atau hubungan dengan kunci yang ditentukan.

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

Mengembalikan

yang sesuai ObjectStateEntry untuk yang diberikan EntityKey.

Pengecualian

Kapan key adalah null.

Ketika yang ditentukan key tidak dapat ditemukan di pengelola status.

Tidak ada entitas dengan yang ditentukan EntityKey yang ada di ObjectStateManager.

Contoh

Contoh ini mendapatkan ObjectStateEntry untuk yang diberikan EntityKey dari ObjectStateManager. Kemudian mendapatkan nilai SalesOrderHeader.PurchaseOrderNumber properti saat ini, mengubah nilai properti, dan menghitung melalui pengumpulan properti yang dimodifikasi.

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

Keterangan

TryGetObjectStateEntry(EntityKey, ObjectStateEntry) Gunakan metode untuk mengembalikan ObjectStateEntry objek tanpa harus menangani yang dinaikkan InvalidOperationExceptionGetObjectStateEntry(EntityKey) oleh metode .

Berlaku untuk

GetObjectStateEntry(Object)

Mengembalikan ObjectStateEntry untuk objek yang ditentukan.

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

tempat Object yang diambil ObjectStateEntry berada.

Mengembalikan

yang sesuai ObjectStateEntry untuk yang diberikan Object.

Pengecualian

Tidak ada entitas untuk yang ditentukan Object yang ada di ObjectStateManager.

Keterangan

TryGetObjectStateEntry(Object, ObjectStateEntry) Gunakan metode untuk mengembalikan ObjectStateEntry objek tanpa harus menangani yang dinaikkan InvalidOperationExceptionGetObjectStateEntry(Object) oleh metode .

Berlaku untuk