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, wenn dieser bereits existiert.

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 voll qualifizierte Name der Entitätenmenge, der das Entitätsobjekt angehört.

entity
Object

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

Gibt zurück

Der EntityKey des Objekts.

Ausnahmen

Wenn einer der Parameter null ist.

Wenn entitySetName leer ist.

- oder -

Wenn der Typ des entity-Objekts in der Entitätenmenge nicht vorhanden ist.

- oder -

Wenn der entitySetName nicht voll qualifiziert ist.

Wenn der Entitätsschlüssel anhand der angegebenen Parameter nicht erstellt werden kann.

Beispiele

In diesem Beispiel wird CreateEntityKey verwendet, 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 nicht vorhanden ist, erstellt die entityCreateEntityKey -Methode einen neuen Schlüssel dafür.

Mit dieser Methode wird ermittelt, ob ein Objekt mit demselben EntityKey bereits an den ObjectContext angefügt wurde. Wenn ein Objekt mit demselben EntityKey bereits angefügt wurde, wird eine Ausnahme ausgelöst. Verwenden Sie die CreateEntityKey-Methode, um den EntityKey des getrennten Objekts abzurufen, bevor Sie die Attach-Methode aufrufen.

Gilt für: