Freigeben über


ObjectStateManager.TryGetObjectStateEntry Methode

Definition

Versucht, ein ObjectStateEntry Objekt für einen bestimmten Objekt- oder Beziehungseintrag zurückzugeben.

Überlädt

Name Beschreibung
TryGetObjectStateEntry(EntityKey, ObjectStateEntry)

Versucht, das entsprechende ObjectStateEntry Objekt oder die beziehungsweise die angegebene EntityKeyBeziehung abzurufen.

TryGetObjectStateEntry(Object, ObjectStateEntry)

Versucht, das entsprechende ObjectStateEntry für die angegebene Object.

TryGetObjectStateEntry(EntityKey, ObjectStateEntry)

Versucht, das entsprechende ObjectStateEntry Objekt oder die beziehungsweise die angegebene EntityKeyBeziehung abzurufen.

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

Parameter

key
EntityKey

Die angegebene .EntityKey

entry
ObjectStateEntry

Wenn diese Methode zurückgegeben wird, enthält sie einen ObjectStateEntry für den angegebenen EntityKey Parameter, der nicht initialisiert wird.

Gibt zurück

Ein boolescher Wert, der angibt true , ob ein entsprechender ObjectStateEntry Wert für das angegebene EntityKeyElement vorhanden ist; andernfalls false.

Ausnahmen

Für key wird ein null (Nothing Visual Basic) angegeben.

Beispiele

Im folgenden Beispiel wird versucht, das entsprechende ObjectStateEntry für das angegebene Objekt EntityKeyabzurufen.

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");
    }
}

Im folgenden Beispiel wird die TryGetObjectStateEntry(EntityKey, ObjectStateEntry) Methode für die zurückgegebene ObjectStateManager Methode verwendet, um ein Objekt basierend auf seinem Entitätsschlüssel abzurufen.

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

Hinweise

Wird TryGetObjectStateEntry(EntityKey, ObjectStateEntry) verwendet, um eine ObjectStateEntry Zurückzugeben, ohne die InvalidOperationException von der GetObjectStateEntry(EntityKey) Methode ausgelöste Behandeln zu müssen.

Gilt für:

TryGetObjectStateEntry(Object, ObjectStateEntry)

Versucht, das entsprechende ObjectStateEntry für die angegebene Object.

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

Parameter

entity
Object

Der Object , zu dem die abgerufene ObjectStateEntry Datei gehört.

entry
ObjectStateEntry

Wenn diese Methode zurückgegeben wird, enthält sie den ObjectStateEntry Für den angegebenen EntityKey Parameter, der nicht initialisiert wird.

Gibt zurück

Ein boolescher Wert, der angibt true , ob ein entsprechendes ObjectStateEntry Objekt vorhanden ist; andernfalls false.

Hinweise

Verwenden Sie die TryGetObjectStateEntry(Object, ObjectStateEntry) Methode, um eine ObjectStateEntry Zurückzugeben, ohne die InvalidOperationException von der GetObjectStateEntry(Object) Methode ausgelöste Behandeln zu müssen.

Gilt für: