ObjectStateManager.GetObjectStateEntry 方法

定義

回傳 和 ObjectStateEntry 針對特定物件或關係的條目。

多載

名稱 Description
GetObjectStateEntry(EntityKey)

回傳物件或關聯項目的 a ObjectStateEntry ,並指定金鑰。

GetObjectStateEntry(Object)

回傳指定物件的 a ObjectStateEntry

GetObjectStateEntry(EntityKey)

回傳物件或關聯項目的 a ObjectStateEntry ,並指定金鑰。

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

參數

傳回

ObjectStateEntry 應給定 EntityKey的 。

例外狀況

keynull

當指定 key 資料無法在州經理中找到時。

在 中ObjectStateManager不存在具有指定EntityKey條件的實體。

範例

此範例由 ObjectStateManager得到給定EntityKey的 。ObjectStateEntry 接著取得屬性的當前值 SalesOrderHeader.PurchaseOrderNumber ,改變屬性的價值,並透過修改過的屬性集合來枚舉。

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

備註

使用該TryGetObjectStateEntry(EntityKey, ObjectStateEntry)方法回傳ObjectStateEntry物件,無需處理該方法提出GetObjectStateEntry(EntityKey)的物件InvalidOperationException

適用於

GetObjectStateEntry(Object)

回傳指定物件的 a ObjectStateEntry

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

參數

entity
Object

Object取回ObjectStateEntry者所屬的。

傳回

ObjectStateEntry 應給定 Object的 。

例外狀況

備註

使用該TryGetObjectStateEntry(Object, ObjectStateEntry)方法回傳ObjectStateEntry物件,無需處理該方法提出GetObjectStateEntry(Object)的物件InvalidOperationException

適用於