Gebruik de eerder gebonden entiteitsklassen voor maken, bijwerken en verwijderen
Gepubliceerd: januari 2017
Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
In Microsoft Dynamics 365 (online en on-premises) kunt u het model van entiteitgegevens en de verbindende entiteitklassen gebruiken die door het hulpprogramma voor de codegeneratie (CrmSvcUtil) zijn gemaakt om met zakelijke gegevens te werken. U kunt deze verbindende klassen met of zonder de context van de organisatieservice gebruiken, maar een aanbevolen procedure is om de gegenereerde contextklasse van de organisatieservice te gebruiken. De context probeert om relaties efficiënt te beheren, maar handgeschreven code is vaak nog efficiënter.
Notitie
Updates voor records worden gemaakt in een specifieke volgorde. Eerst worden de primaire entiteiten verwerkt en vervolgens worden de gerelateerde entiteiten verwerkt. Als een wijziging door de primaire entiteit is gemaakt voor een zoekactie of gerelateerd entiteitskenmerk, en de gerelateerde entiteit hetzelfde kenmerk bijwerkt, blijft de gerelateerde entiteitwaarde behouden. In het algemeen moeten een opzoekkenmerkwaarde en het equivalent in RelatedEntities (of navigatieeigenschappen) voor dezelfde relatie niet tegelijkertijd moeten worden gebruikt.
In dit onderwerp
Gebruik de klasse OrganizationServiceContext
Maak een nieuw entiteitrecord met de verbindende entiteitklassen en de OrganizationServiceContext-klasse
Werk een entiteitrecord bij met de verbindende entiteitklassen en de OrganizationServiceContext-klasse
Verwijder een entiteitrecord met de verbindende entiteitklassen en de OrganizationServiceContext-klasse
Gebruik verbindende entiteitklassen zonder een Contextobject
Gebruik de klasse OrganizationServiceContext
De contextklasse van de organisatieservice die het hulpprogramma voor het maken code maakt en dat neemt van OrganizationServiceContext wordt gebruikt om gegevenswijzigingen bij te houden. De context houdt objecten bij die exemplaren zijn van entiteitstypen met gegevens die in Microsoft Dynamics 365 worden weergegeven. U kunt objecten bewerken, maken en verwijderen in de organisatieservicecontext en Microsoft Dynamics 365 houdt de wijzigingen bij die u aan deze objecten hebt gemaakt. Wanneer de methode OrganizationServiceContext.SaveChanges wordt aangeroepen, worden door Microsoft Dynamics 365 opdrachten gegenereerd en uitgevoerd uit die de gelijkwaardige invoeg, update of verwijderstatements uitvoeren tegen gegevens in Microsoft Dynamics 365.
Als u werkt met verbindende entiteitklassen, gebruikt u de entiteitnaam en de naam van het kenmerkschema om een entiteit of kenmerk op te geven om mee te werken. Kenmerkschemanamen worden gedefinieerd in EntityMetadata.SchemaName en AttributeMetadata.SchemaName of u kunt de klasse- en eigenschapsnamen gebruiken die worden weergegeven in het door de code gegenereerde bestand. Het volgende voorbeeld laat zien hoe u een waarde kunt toewijzen aan het e-mailkenmerk van een nieuw contactpersoonexemplaar.
Contact contact = new Contact();contact.EMailAddress1 = “sonny@contoso.com”;
Voor een volledig voorbeeldcode die laat zien hoe u verbindende entiteitklassen kunt gebruiken om basisdatabaseacties uit te voeren, raadpleegt u Voorbeeld: Records maken, ophalen, bijwerken en verwijderen (vroeg gebonden).
Maak een nieuw entiteitrecord met de verbindende entiteitklassen en de OrganizationServiceContext-klasse
Als u gegevens in Microsoft Dynamics 365 wilt invoegen door het entiteitgegevensmodel te gebruiken, moet u een exemplaar van een entiteitstype maken en het object aan een context van de organisatieservice toevoegen. De context van de organisatieservice moet het object bijhouden voordat het object in Microsoft Dynamics 365 kan worden opgeslagen.
Wanneer u een nieuw entiteitrecord maakt, voegt u het object aan de context van de organisatieservice toe door de methode OrganizationServiceContext.AddObject te gebruiken.
Dit voorbeeld laat zien hoe u een nieuw contactpersoonrecord kunt instaniëren en opslaan door het entiteitgegevensmodel te gebruiken. Het laat ook zien hoe u toegang krijgt tot een aangepast kenmerk.
OrganizationServiceContext orgContext =new OrganizationServiceContext(_serviceProxy);
Contact contact = new Contact()
{
FirstName = "Charles",
LastName = "Brown",
Address1_Line1 = "123 Main St.",
Address1_City = "Des Moines",
Address1_StateOrProvince = "IA",
Address1_PostalCode = "21254",
new_twittername = "Chuck",
Telephone1 = "123-234-5678"
};
orgContext.AddObject(contact);orgContext.SaveChanges();
Nadat u een object toevoegt aande context en voor de methode OrganizationServiceContext.SaveChanges wordt aangeroepen, genereert de context een ID voor het nieuwe object. Een uitzondering die de SaveChangesResults bevat wordt uit de methode SaveChanges verwijderd als updates van de Microsoft Dynamics 365 gegevens mislukken.
Werk een entiteitrecord bij met de verbindende entiteitklassen en de OrganizationServiceContext-klasse
Microsoft Dynamics 365 houdt wijzigingen bij aan objecten die zijn gekoppeld aan de context van de organisatieservice. Als u een bestaand record wilt wijzigen, moet u het object voor de context eerst toevoegen. Om een object aan de context toe te voegen, moet u de entiteit eerst ophalen van Microsoft Dynamics 365 en vervolgens het object aan de context toevoegen door de methode OrganizationServiceContext.Attach te gebruiken. Als het object door de context wordt bijgehouden, kunt u de record bijwerken door de kenmerken van de entiteit in te stellen.
Dit voorbeeld laat zien hoe u een accountkenmerk kunt bijwerken door eerder gebonden klassen te gebruiken.
Account.EMailAddress1 = “Contoso-WebMaster@contoso.com”;
In het volgende voorbeeld ziet u hoe u een kenmerkwaarde kunt verwijderen.
Account.EMailAddress1 = null;
Er zijn twee gedeeltelijke methoden genaamd OnPropertyChanging en OnPropertyChanged voor elke entiteit. Deze methoden worden genoemd in de eigenschapzetter. U kunt deze methoden uitbreiden door gedeeltelijke klassen te gebruiken om aangepaste bedrijfslogica in te voegen.
Verwijder een entiteitrecord met de verbindende entiteitklassen en de OrganizationServiceContext-klasse
De context van de organisatieservice moet het object bijhouden voordat het entiteitrecord kan worden opgeslagen. Als het object op de context is, kunt u de methode OrganizationServiceContext.DeleteObject gebruiken om het object op de context te markeren voor verwijdering. Denk eraan dat de entiteitsrecord in Microsoft Dynamics 365 niet wordt verwijderd totdat de methode OrganizationServiceContext.SaveChanges wordt aangeroepen.
Gebruik verbindende entiteitklassen zonder een Contextobject
U kunt de verbindende entiteitklassen gebruiken zonder een context van de organisatieservice te maken als u geen contextobject wilt maken. De OrganizationServiceProxy-klasse bevat een OrganizationServiceProxy. De methode Create die kan worden gebruikt om entiteitsrecordwijzigingen in Microsoft Dynamics 365 op te slaan .
Dit voorbeeld laat zien hoe u een verbindende entiteitklasse kunt gebruiken zonder een contextobject van de organisatieservice te maken. De OrganizationServiceProxy. De methode Create retourneert de GUID-ID die aan de nieuwe entiteitsrecord is toegewezen.
Contact contact = new Contact()
{
FirstName = "Charles",
LastName = "Brown",
Address1_Line1 = "123 Main St.",
Address1_City = "Des Moines",
Address1_StateOrProvince = "IA",
Address1_PostalCode = "21254",
Telephone1 = "123-234-5678"
};
_contactId = _serviceProxy.Create(contact);
Als u een entiteitsrecord wilt bijwerken in Microsoft Dynamics 365, haalt u de gegevens op die moeten worden bijgewerkt, maakt u de noodzakelijke wijzigingen en gebruikt u vervolgens OrganizationServiceProxy. De methode Update om deze wijzigingen door te voeren in Microsoft Dynamics 365. Als u entiteitsrecords wilt ophalen, gebruikt u OrganizationServiceProxy. De methode Retrieve voor het ophalen van één object of OrganizationServiceProxy. De methode RetrieveMultiple om meerdere objecten op te halen. Als u een entiteitsrecord wilt verwijderen, gebruikt u OrganizationServiceProxy.Delete-methode.
Zie ook
De eerder gebonden entiteitklassen in code gebruiken
De eerder gebonden entiteitsklassen gebruiken om koppelingen tussen gerelateerde records toe te voegen of bij te werken
Eerder gebonden entiteitklassen maken met het hulpmiddel voor het genereren van code (CrmSvcUtil.exe)
Voorbeeld: Records maken, ophalen, bijwerken en verwijderen (vroeg gebonden)
Microsoft Dynamics 365
© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht