Partilhar via


Usar uma chave alternativa para criar um registro

 

Publicado: novembro de 2016

Aplicável a: Dynamics CRM 2015

Agora você pode usar as chaves alternativas para criar instâncias de classes Entity e EntityReference. Este tópico discute os padrões de uso e as exceções possíveis que podem ser geradas ao usar as chaves alternativas. Para compreender como definir chaves alternativas para uma entidade, consulte Definir chaves alternativas para uma entidade.

Observação

Para organizações que utilizam o Microsoft Dynamics CRM Online, esse recurso só estará disponível se a sua organização tiver atualizado para a Atualização 1 do Dynamics CRM Online 2015. Este recurso não está disponível para o Dynamics CRM (local).

Neste tópico

Usando as chaves alternativas para criar uma entidade

Usando chaves alternativas para criar uma EntityReference

Entrada alternativa para mensagens

Exceções ao usar chaves alternativas

Usando as chaves alternativas para criar uma entidade

Agora você pode criar um Entity com uma ID principal ou um único KeyAttribute em uma chamada única usando o novo construtor.

public Entity (string logicalName, Guid id) {…}  
public Entity (string logicalName, string keyName, object keyValue) {…}
public Entity (string logicalName, KeyAttributeCollection keyAttributes) {…}  

Um Entity válido usado para atualizar operações inclui um nome lógico da entidade e uma das seguintes opções:

  • Um valor para a ID (valor GUID da chave primária) (ou)

  • Um KeyAttributeCollection com um conjunto de atributos válidos que correspondem a uma chave definida para a entidade.

Usando chaves alternativas para criar uma EntityReference

Agora você também pode criar um EntityReference sem uma ID principal, e com um único KeyAttribute em uma chamada única usando o novo construtor.

public EntityReference(string logicalName, Guid id) {…}  
public EntityReference(string logicalName, string keyName, object keyValue) {…}  
public EntityReference(string logicalName, KeyAttributeCollection keyAttributeCollection) {…}  

Um EntityReference válido inclui um nome lógico da entidade e uma destas opções:

  • Um valor para a ID (valor GUID da chave primária) ou

  • Uma coleção de KeyAttributeCollection com um conjunto de atributos válidos que correspondem a uma chave definida para a entidade.

Entrada alternativa para mensagens

Ao passar entidades para a CreateRequest e a UpdateRequest, os valores fornecidos para os Atributos de pesquisa usando uma EntityReference podem agora usar a EntityReference com chaves alternativas definidas em KeyAttributes para especificar o registro relacionado.  Elas serão resolvidas e substituídas por uma ID principal com base nas referências de entidades antes que as mensagens sejam processadas.

Exceções ao usar chaves alternativas

Você precisa estar ciente das seguintes condições e possíveis exceções ao usar chaves alternativas:

  • A ID principal é usada quando é fornecida. Se ela não for fornecida, examinará KeyAttributeCollection. Se KeyAttributeCollection não for fornecida, gerará um erro.

  • Se o KeyAttributeCollection fornecido incluir um atributo que é a chave primária da entidade e o valor for válido, ele preencherá a propriedade da ID do Entity ou EntityReference com o valor fornecido.

  • Se os atributos de chave são fornecidos, o sistema tenta corresponder ao conjunto de atributos fornecidos com as chaves definidas para Entity. Se não encontrar uma correspondência, gerará um erro. Se encontrar uma correspondência, validará os valores fornecidos para esses atributos. Se for válido, recuperará a ID do registro que correspondeu aos valores de chave fornecidos, e preencherá o valor de ID de Entity ou EntityReference com esse valor.

  • Se você especificar um conjunto de atributos que não esteja definido como uma chave exclusiva, um erro será gerado indicando que o uso de atributos de chave exclusiva é necessário.

Confira Também

Definir chaves alternativas para uma entidade
Usar o controle de alterações para sincronizar dados com sistemas externos
Usar Upsert para inserir ou atualizar um registro

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais