ObjectStateManager.GetObjectStateEntry 方法

定义

返回特定对象或关系项的 ObjectStateEntry

重载

GetObjectStateEntry(EntityKey)

返回具有指定键的对象或关系项的 ObjectStateEntry

GetObjectStateEntry(Object)

返回指定对象的 ObjectStateEntry

GetObjectStateEntry(EntityKey)

返回具有指定键的对象或关系项的 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

参数

返回

对应于给定 ObjectStateEntryEntityKey

例外

keynull 时。

在状态管理器中找不到指定的 key 时。

EntityKey 中不存在具有指定 ObjectStateManager 的实体。

示例

此示例从 获取 ObjectStateEntry 给定 EntityKeyObjectStateManager。 然后,它获取属性的 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,而无需处理 InvalidOperationException 方法引发的 GetObjectStateEntry(EntityKey)

适用于

GetObjectStateEntry(Object)

返回指定对象的 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

返回

对应于给定 ObjectStateEntryObject

例外

Object 中不存在具有指定 ObjectStateManager 的实体。

注解

TryGetObjectStateEntry(Object, ObjectStateEntry)使用 方法返回 对象ObjectStateEntry,而无需处理 InvalidOperationException 方法引发的 GetObjectStateEntry(Object)

适用于