Compartilhar via


ObjectContext.CreateEntityKey(String, Object) Método

Definição

Cria a chave da entidade para um objeto específico ou retorna a chave da entidade se ela já existe.

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

Parâmetros

entitySetName
String

O nome totalmente qualificado do conjunto de entidades ao qual o objeto de entidade pertence.

entity
Object

O objeto para o qual a chave da entidade está sendo recuperada.

Retornos

O EntityKey do objeto.

Exceções

Quando um parâmetro é null.

Quando entitySetName está vazio.

- ou -

Quando o tipo do objeto entity não existe no conjunto de entidades.

- ou -

Quando o entitySetName não é totalmente qualificado.

Quando a chave da entidade não puder ser construída com êxito com base nos parâmetros fornecidos.

Exemplos

Neste exemplo, CreateEntityKey é usado para recuperar a chave de entidade de um objeto existente.

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

Comentários

Se um EntityKey não existir para o entity, o CreateEntityKey método criará uma nova chave para ele.

Esse método é usado para determinar se um objeto que tem o mesmo EntityKey já está anexado ao ObjectContext. Se um objeto que tem o mesmo EntityKey já estiver anexado, uma exceção será gerada. Use o CreateEntityKey método para tentar recuperar o EntityKey do objeto desanexado antes de chamar o Attach método .

Aplica-se a