Delen via


Een alternatieve sleutel gebruiken voor het maken van een record

 

Gepubliceerd: november 2016

Is van toepassing op: Dynamics CRM 2015

U kunt nu alternatieve sleutels gebruiken om exempalaren van klassen Entity en EntityReference te maken. In dit onderwerp worden de gebruikspatronen en mogelijke uitzonderingen die zich kunnen voordoen bij gebruik van alternatieve sleutels besproken. Zie Alternatieve sleutels voor een entiteit definiëren voor informatie over het definiëren van alternatieve sleutels voor een entiteit.

Notitie

Voor Microsoft Dynamics CRM Online-organisaties is deze functie alleen beschikbaar als uw organisatie is bijgewerkt naar Dynamics CRM Online 2015 Update 1. Deze functie is niet beschikbaar voor Dynamics CRM (on-premises).

In dit onderwerp

Alternatieve sleutels gebruiken voor het maken van een entiteit

Alternatieve sleutels gebruiken voor het maken van een EntityReference

Alternatieve invoer voor berichten

Uitzonderingen bij gebruik van alternatieve sleutels

Alternatieve sleutels gebruiken voor het maken van een entiteit

U kunt nu een Entity maken met een primaire id of met een enkel KeyAttribute in een enkele aanroep met behulp van de nieuwe constructor.

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

Een geldige Entity die wordt gebruikt voor bijwerkbewerkingenj bevat een logische naam van de entiteit en één van de volgende items:

  • Een waarde voor id (GUID-waarde voor primaire sleutel) (of)

  • Een KeyAttributeCollection met een reeks van geldige kenmerken die overeenkomen met een gedefinieerde sleutel voor de entiteit.

Alternatieve sleutels gebruiken voor het maken van een EntityReference

U kunt ook een EntityReference maken zonder een primaire id en met een enkel KeyAttribute in een enkele aanroep met behulp van de nieuwe constructor.

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

Een geldige EntityReference bevat een logische naam voor de entiteit en een van de beide volgende items:

  • Een waarde voor id (GUID-waarde voor primaire sleutel) of

  • Een KeyAttributeCollection-verzameling met een reeks van geldige kenmerken die overeenkomen met een gedefinieerde sleutel voor de entiteit.

Alternatieve invoer voor berichten

Wanneer entiteiten worden doorgegeven aan CreateRequest en UpdateRequest, kunnen de waarden die worden opgegeven voor opzoekkenmerken door middel van een EntityReference, nu gebruik maken van EntityReference met alternatieve sleutels die zijn gedefinieerd in KeyAttributes om de gerelateerde record aan te geven.  Deze worden omgezet naar en vervangen door op de primaire ID gebaseerde entiteitsverwijzingen voordat de berichten worden verwerkt.

Uitzonderingen bij gebruik van alternatieve sleutels

U moet zich bewust zijn van de volgende voorwaarden en mogelijk uitzonderingen bij gebruik van alternatieve sleutels:

  • De primaire id wordt gebruikt als deze wordt opgegeven. Als deze niet is opgegeven, wordt de KeyAttributeCollection onderzocht. Als de KeyAttributeCollection niet is opgegeven, treedt er een fout op.

  • Als de opgegeven KeyAttributeCollection één kenmerk bevat dat de primaire sleutel van de entiteit is en de waarde is geldig, wordt de id-eigenschap van de Entity of EntityReference gevuld met de opgegeven waarde.

  • Als de sleutelkenmerken worden opgegeven, probeert het systeem de reeks van opgegeven kenmerken af te stemmen op de sleutels die zijn gedefinieerd voor de Entity. Als geen overeenkomst wordt gevonden, treedt er een fout op. Als wel een overeenkomst wordt gevonden, worden de opgegeven waarden gevalideerd voor deze kenmerken. Als zij geldig zijn, wordt de id van de record opgehaald die overeenkwam met de opgegeven sleutelwaarden en wordt de id-waarde van de Entity of EntityReference gevuld met deze waarde.

  • Als u een kenmerkset opgeeft die niet is gedefinieerd als een unieke sleutel, treedt er een fout op die aangeeft dat gebruik van unieke sleutelkenmerken is vereist.

Zie ook

Alternatieve sleutels voor een entiteit definiëren
Tracering gebruiken om gegevens te synchroniseren met externe systemen
Upsert gebruiken om een record in te voegen of bij te werken

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht