ObjectStateManager.TryGetObjectStateEntry Methode

Definitie

Hiermee wordt geprobeerd een ObjectStateEntry object te retourneren voor een specifiek object of een relatievermelding.

Overloads

Name Description
TryGetObjectStateEntry(EntityKey, ObjectStateEntry)

Hiermee wordt geprobeerd het bijbehorende ObjectStateEntry voor het object of de relatie met het opgegeven EntityKeyobject op te halen.

TryGetObjectStateEntry(Object, ObjectStateEntry)

Probeert de corresponderende ObjectStateEntry voor de opgegeven Objectop te halen.

TryGetObjectStateEntry(EntityKey, ObjectStateEntry)

Hiermee wordt geprobeerd het bijbehorende ObjectStateEntry voor het object of de relatie met het opgegeven EntityKeyobject op te halen.

public:
 bool TryGetObjectStateEntry(System::Data::EntityKey ^ key, [Runtime::InteropServices::Out] System::Data::Objects::ObjectStateEntry ^ % entry);
public bool TryGetObjectStateEntry(System.Data.EntityKey key, out System.Data.Objects.ObjectStateEntry entry);
member this.TryGetObjectStateEntry : System.Data.EntityKey * ObjectStateEntry -> bool
Public Function TryGetObjectStateEntry (key As EntityKey, ByRef entry As ObjectStateEntry) As Boolean

Parameters

key
EntityKey

Het gegeven EntityKey.

entry
ObjectStateEntry

Wanneer deze methode wordt geretourneerd, bevat een ObjectStateEntry voor de opgegeven EntityKey deze parameter wordt niet-geïnitialiseerd doorgegeven.

Retouren

Een Booleaanse waarde die is true als er een corresponderende ObjectStateEntry waarde is voor de opgegeven EntityKeywaarde; anders. false

Uitzonderingen

Er wordt een null (Nothing in Visual Basic) opgegeven voor key.

Voorbeelden

In het volgende voorbeeld wordt geprobeerd de corresponderende ObjectStateEntry voor de opgegeven EntityKeyop te halen.

int orderId = 43680;

using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    ObjectStateManager objectStateManager = context.ObjectStateManager;
    ObjectStateEntry stateEntry = null;

    var order = (from o in context.SalesOrderHeaders
                 where o.SalesOrderID == orderId
                 select o).First();

    // Attempts to retrieve ObjectStateEntry for the given EntityKey.
    bool isPresent = objectStateManager.TryGetObjectStateEntry(((IEntityWithKey)order).EntityKey, out stateEntry);
    if (isPresent)
    {
        Console.WriteLine("The entity was found");
    }
}

In het volgende voorbeeld wordt de TryGetObjectStateEntry(EntityKey, ObjectStateEntry) methode voor het geretourneerde object gebruikt ObjectStateManager om een object op te halen op basis van de entiteitssleutel.

private static void ApplyItemUpdates(SalesOrderDetail originalItem,
    SalesOrderDetail updatedItem)
{
    using (AdventureWorksEntities context =
        new AdventureWorksEntities())
    {
        context.SalesOrderDetails.Attach(updatedItem);
        // Check if the ID is 0, if it is the item is new.
        // In this case we need to chage the state to Added.
        if (updatedItem.SalesOrderDetailID == 0)
        {
            // Because the ID is generated by the database we do not need to
            // set updatedItem.SalesOrderDetailID.
            context.ObjectStateManager.ChangeObjectState(updatedItem, System.Data.EntityState.Added);
        }
        else
        {
            // If the SalesOrderDetailID is not 0, then the item is not new
            // and needs to be updated. Because we already added the
            // updated object to the context we need to apply the original values.
            // If we attached originalItem to the context
            // we would need to apply the current values:
            // context.ApplyCurrentValues("SalesOrderDetails", updatedItem);
            // Applying current or original values, changes the state
            // of the attached object to Modified.
            context.ApplyOriginalValues("SalesOrderDetails", originalItem);
        }
        context.SaveChanges();
    }
}

Opmerkingen

Gebruik TryGetObjectStateEntry(EntityKey, ObjectStateEntry) dit om een ObjectStateEntry retour te retourneren zonder dat u de InvalidOperationException gegenereerde GetObjectStateEntry(EntityKey) methode hoeft te verwerken.

Van toepassing op

TryGetObjectStateEntry(Object, ObjectStateEntry)

Probeert de corresponderende ObjectStateEntry voor de opgegeven Objectop te halen.

public:
 bool TryGetObjectStateEntry(System::Object ^ entity, [Runtime::InteropServices::Out] System::Data::Objects::ObjectStateEntry ^ % entry);
public bool TryGetObjectStateEntry(object entity, out System.Data.Objects.ObjectStateEntry entry);
member this.TryGetObjectStateEntry : obj * ObjectStateEntry -> bool
Public Function TryGetObjectStateEntry (entity As Object, ByRef entry As ObjectStateEntry) As Boolean

Parameters

entity
Object

De Object waartoe de opgehaalde ObjectStateEntry behoort.

entry
ObjectStateEntry

Wanneer deze methode wordt geretourneerd, bevat de ObjectStateEntry voor de opgegeven EntityKey deze parameter niet-geïnitialiseerd.

Retouren

Een Booleaanse waarde die is true als er een corresponderende ObjectStateEntry waarde is voor het opgegeven object; falseanders.

Opmerkingen

Gebruik de TryGetObjectStateEntry(Object, ObjectStateEntry) methode om een ObjectStateEntry retour te retourneren zonder de InvalidOperationException gegenereerde GetObjectStateEntry(Object) methode te hoeven afhandelen.

Van toepassing op