Del via


Bruge de tidligt bundne objektklasser til oprettelse, opdatering og sletning

 

Udgivet: januar 2017

Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

I Microsoft Dynamics 365 (online og i det lokale miljø) kan du bruge objektdatamodellen og de tidligt bundne objektklasser, der er oprettet ved hjælp værktøjet til generering af kode (CrmSvcUtil), til at arbejde med forretningsdata. Du kan bruge disse tidligt bundne klasser med eller uden organisationstjenestekonteksten, men den bedste fremgangsmåde er at bruge den genererede kontekstklasse til organisationstjenesten. Konteksten forsøger at håndtere relationer effektivt, men håndskreven kode kan typisk være endnu mere effektiv.

Bemærk

Der foretages opdateringer af posterne i en bestemt rækkefølge. Først behandles primære objekter og derefter behandles relaterede objekter. Hvis der foretages en ændring af det primære objekt for et opslag eller en attribut af typen relateret objekt, og et relateret objekt derefter opdaterer den samme attribut, bevares den relaterede objektværdi. Generelt bør en attributværdi for et opslag og dens tilsvarende i RelatedEntities (eller navigationsegenskaber) til den samme relation ikke anvendes på samme tid.

Dette emne indeholder

Bruge klassen OrganizationServiceContext

Oprette en ny objektpost ved hjælp af tidligt bundne objektklasser og klassen OrganizationServiceContext

Opdatere en objektpost ved hjælp af tidligt bundne objektklasser og klassen OrganizationServiceContext

Slette en objektpost ved hjælp af tidligt bundne objektklasser og klassen OrganizationServiceContext

Bruge tidligt bundne objektklasser uden et kontekstobjekt.

Bruge klassen OrganizationServiceContext

Den kontekstklasse for organisationstjenesten, der oprettes af værktøjet til generering af kode, og som arver fra OrganizationServiceContext, bruges til at spore dataændringer. Konteksten sporer objekter, der er forekomster af objekttyper, der repræsenterer data i Microsoft Dynamics 365. Du kan redigere, oprette og slette objekter i organisationstjenestekonteksten, og Microsoft Dynamics 365 registrerer de ændringer, du har foretaget til disse objekter. Når metoden OrganizationServiceContext.SaveChanges kaldes, genererer og udfører Microsoft Dynamics 365 kommandoer, der udfører indsættelse, opdatering eller sletning af udtryk op imod data i Microsoft Dynamics 365.

Når du arbejder med tidligt bundne objektklasser, bruger du objektnavnet og attributtens skemanavn til at angive et objekt eller en attribut, der skal arbejdes med. Attributskemanavne er defineret i EntityMetadata.SchemaName og AttributeMetadata.SchemaName, eller du kan bruge de klasse- og egenskabsnavne, der vises i den kodegenererede fil. Følgende eksempel viser, hvordan du tildeler en værdi til attributten e-mail i en ny kontaktforekomst.

Contact contact = new Contact();contact.EMailAddress1 = “sonny@contoso.com”;

Du kan se et komplet kodeeksempel, som viser, hvordan du bruger tidligt bundne objektklasser til at udføre grundlæggende databasehandlinger, under Eksempel: Oprette, hente, opdatere og slette poster (tidligt bundne).

Oprette en ny objektpost ved hjælp af tidligt bundne objektklasser og klassen OrganizationServiceContext

Hvis du vil indsætte data i Microsoft Dynamics 365 ved hjælp af objektdatamodellen, skal du oprette en forekomst af en objekttype og føje objektet til en organisationstjenestekontekst. Organisationstjenestekonteksten skal spore objektet, før den kan gemme objektet til Microsoft Dynamics 365.

Når du opretter en ny objektpost, skal du føje objektet til organisationstjenestekonteksten ved hjælp af metoden OrganizationServiceContext.AddObject.

Følgende eksempel viser, hvordan du opretter og gemmer en ny kontaktpersonpost i objektdatamodellen. Det viser også, hvordan du får adgang til en brugerdefineret attribut.

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

Når du tilføjer et objekt til konteksten, og før metoden OrganizationServiceContext.SaveChanges kaldes, genererer konteksten et id for det nye objekt. En undtagelse, der indeholder SaveChangesResults er udløst fra metoden SaveChanges, hvis nogen af opdateringerne til Microsoft Dynamics 365-dataene mislykkedes.

Opdatere en objektpost ved hjælp af tidligt bundne objektklasser og klassen OrganizationServiceContext

Microsoft Dynamics 365 sporer ændringer af objekter, der er tilknyttet organisationstjenestekonteksten. Hvis du vil ændre en eksisterende objektpost, skal du først føje objektet til konteksten. Hvis du vil føje et objekt til konteksten, skal du først hente objektposten fra Microsoft Dynamics 365 og derefter føje objektet til konteksten ved hjælp af metoden OrganizationServiceContext.Attach. Når objektet spores af konteksten, kan du opdatere posten ved at angive objektets attributter.

Følgende eksempel viser, hvordan du opdaterer en firmaattribut ved hjælp af tidligt bundne klasser.

Account.EMailAddress1 = “Contoso-WebMaster@contoso.com”;

Følgende eksempel viser, hvordan du sletter en attributværdi.

Account.EMailAddress1 = null;

Der er to delvise metoder med navnet OnPropertyChanging og OnPropertyChanged for hvert objekt. Disse metoder kaldes ved angivelse af en egenskab. Du kan udvide disse metoder ved hjælp af delvise klasser til at indsætte brugerdefineret forretningslogik.

Slette en objektpost ved hjælp af tidligt bundne objektklasser og klassen OrganizationServiceContext

Hvis du vil slette en objektpost, skal organisationstjenestekonteksten spore objektet. Når objektet er i konteksten, kan du bruge metoden OrganizationServiceContext.DeleteObject til at markere objektet på konteksten til sletning. Bemærk, at objektposten i Microsoft Dynamics 365 ikke slettes, før metoden OrganizationServiceContext.SaveChanges kaldes.

Bruge tidligt bundne objektklasser uden et kontekstobjekt.

Du kan bruge de tidligt bundne objektklasser uden at oprette et objekt for organisationstjenestekonteksten, hvis du ikke vil oprette kontekstobjektet.OrganizationServiceProxy-klassen inkluderer en OrganizationServiceProxy.Create-metoden, der kan bruges til at gemme objektposter, ændres til Microsoft Dynamics 365.

Følgende eksempel viser, hvordan du bruger en tidligt bundet objektklasse uden at oprette et objekt for en organisationstjenestekontekst.OrganizationServiceProxy.Create-metoden returnerer GUID-id'et, der blev tildelt til den nye, oprette objektpost.

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

Hvis du vil opdatere en objektpost i Microsoft Dynamics 365, skal du kan hente de data, der skal opdateres, foretage de nødvendige ændringer og derefter bruge OrganizationServiceProxy.Update-metoden til at udføre de ændringer til Microsoft Dynamics 365. For at hente objektposter skal du bruge OrganizationServiceProxy.Retrieve-metoden til hentning af enkelte objekter eller OrganizationServiceProxy.RetrieveMultiple-metoden til hentning af flere objekter. Hvis du vil slette en objektpost, skal du bruge OrganizationServiceProxy.Delete-metode.

Se også

Brug de tidligt bundne objektklasser i kode
Brug tidligt bundet objektklasser til at tilføje eller opdatere tilknytninger mellem relaterede poster
Opret klasser for tidligt bundne objekter med værktøjet til oprettelse af kode (CrmSvcUtil.exe)
Eksempel: Oprette, hente, opdatere og slette poster (tidligt bundne)

Microsoft Dynamics 365

© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret