Freigeben über


ObjectContext.CreateEntityKey(String, Object) Methode

Definition

Erstellt den Entitätsschlüssel für ein bestimmtes Objekt oder gibt den Entitätsschlüssel zurück, falls er bereits vorhanden ist.

public:
 System::Data::EntityKey ^ CreateEntityKey(System::String ^ entitySetName, System::Object ^ entity);
public System.Data.EntityKey CreateEntityKey(string entitySetName, object entity);
member this.CreateEntityKey : string * obj -> System.Data.EntityKey
Public Function CreateEntityKey (entitySetName As String, entity As Object) As EntityKey

Parameter

entitySetName
String

Der vollqualifizierte Name der Entität, zu der das Entitätsobjekt gehört.

entity
Object

Das Objekt, für das der Entitätsschlüssel abgerufen wird.

Gibt zurück

Das EntityKey Objekt.

Ausnahmen

Wenn eines der Parameter lautet null.

Ist entitySetName leer.

- oder -

Wenn der Typ des entity Objekts nicht im Entitätssatz vorhanden ist.

- oder -

Wenn dies entitySetName nicht vollqualifizierte ist.

Wenn der Entitätsschlüssel nicht basierend auf den angegebenen Parametern erfolgreich erstellt werden kann.

Beispiele

In diesem Beispiel wird verwendet, CreateEntityKey um den Entitätsschlüssel eines vorhandenen Objekts abzurufen.

private static void ApplyItemUpdates(SalesOrderDetail updatedItem)
{
    // Define an ObjectStateEntry and EntityKey for the current object.
    EntityKey key = default(EntityKey);
    object originalItem = null;

    using (AdventureWorksEntities context = new AdventureWorksEntities())
    {
        // Create the detached object's entity key.
        key = context.CreateEntityKey("SalesOrderDetails", updatedItem);

        // Get the original item based on the entity key from the context
        // or from the database.
        if (context.TryGetObjectByKey(key, out originalItem))
        {
            // Call the ApplyCurrentValues method to apply changes
            // from the updated item to the original version.
            context.ApplyCurrentValues(key.EntitySetName, updatedItem);
        }

        context.SaveChanges();
    }
}

Hinweise

Wenn für EntityKey die entityMethode kein Vorhanden ist, erstellt die CreateEntityKey Methode einen neuen Schlüssel dafür.

Diese Methode wird verwendet, um zu bestimmen, ob ein Objekt, das dasselbe EntityKey aufweist, bereits an die ObjectContext. Wenn ein Objekt, das dasselbe EntityKey aufweist, bereits angefügt ist, wird eine Ausnahme ausgelöst. Verwenden Sie die CreateEntityKey Methode, um das losgelöste Objekt abzurufen EntityKey , bevor Sie die Attach Methode aufrufen.

Gilt für: