Verwenden der Entitätsklassen mit früher Bindung zum Erstellen, Löschen und Aktualisieren

 

Veröffentlicht: Januar 2017

Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

In Microsoft Dynamics 365 (online und lokal) können Sie das Entity Data Model und die Entitätsklassen mit früher Bindung, die vom Codegenerierungstool (CrmSvcUtil) erstellt werden, verwenden, um mit Geschäftsdaten zu arbeiten. Sie können diese Klassen mit früher Bindung mit oder ohne den Organisationsservicekontext verwenden. Es ist jedoch eine bewährte Methode, die Organisationsservicekontext-Klasse zu verwenden. Der Kontext versucht, Beziehungen effizient zu verwalten, aber handgeschriebener Code kann in der Regel noch effizienter sein.

Hinweis

Aktualisierungen an den Datensätzen werden in einer bestimmten Reihenfolge ausgeführt. Zunächst werden primäre Entitäten verarbeitet, und anschließend werden verknüpfte Entitäten verarbeitet. Wenn eine Änderung von der primären Entität für ein Such- oder verknüpftes Entitätsattribut vorgenommen wird und dann eine verknüpfte Entität das gleiche Attribut aktualisiert, wird der Wert der verknüpften Entität beibehalten. Im Allgemeinen sollten ein Suchattributwert und der entsprechende Wert in den RelatedEntities (oder Navigationseigenschaften) für dieselbe Beziehung nicht gleichzeitig verwendet werden.

In diesem Thema

Verwenden der OrganizationServiceContext-Klasse

Erstellen eines neuen Entitätsdatensatzes mithilfe von Entitätsklassen mit früher Bindung und der OrganizationServiceContext-Klasse

Aktualisieren eines Entitätsdatensatzes mithilfe von Entitätsklassen mit früher Bindung und der OrganizationServiceContext-Klasse

Löschen eines Entitätsdatensatzes mithilfe von Entitätsklassen mit früher Bindung und der OrganizationServiceContext-Klasse

Verwenden von Entitätsklassen mit früher Bindung ohne ein Kontextobjekt

Verwenden der OrganizationServiceContext-Klasse

Die Organisationsservicekontext-Klasse, die vom Codegenerierungstool erstellt wird und die vom OrganizationServiceContext erbt, wird verwendet, um Datenänderungen nachzuverfolgen. Der Kontext wird zur Nachverfolgung von Objekten verwendet, die Instanzen von Entitätstypen sind, die Daten in Microsoft Dynamics 365 darstellen. Sie können Objekte im Organisationsservicekontext ändern, erstellen und löschen, und die an den Objekten vorgenommenen Änderungen werden von Microsoft Dynamics 365 nachverfolgt. Wenn die OrganizationServiceContext.SaveChanges-Methode aufgerufen wird, werden die Befehle, die die entsprechenden Einfüge-, Aktualisierungs- oder Löschanweisungen für Daten in Microsoft Dynamics 365 ausführen, von Microsoft Dynamics 365 generiert und ausgeführt.

Bei der Verwendung von Entitätsklassen mit früher Bindung verwenden Sie den Entitätsnamen und Attributschemanamen, um eine Entität oder ein Attribut anzugeben, die bzw. das verwendet werden soll. Attributschemanamen werden in EntityMetadata.SchemaName und AttributeMetadata.SchemaName definiert, oder Sie können die Klassen- und Eigenschaftennamen verwenden, die in der Code-generierten Datei angezeigt werden. Das folgende Beispiel zeigt, wie Sie einen Wert dem E-Mail-Attribut einer neuen Kontaktinstanz zuweisen..

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

Ein vollständiges Codebeispiel, das veranschaulicht, wie Entitätsklassen mit früher Bindung verwendet werden, um einfache Datenbankaktionen auszuführen, finden Sie unter Beispiel: Erstellen, Abrufen, Aktualisieren und Löschen von Datensätzen (frühe Bindung).

Erstellen eines neuen Entitätsdatensatzes mithilfe von Entitätsklassen mit früher Bindung und der OrganizationServiceContext-Klasse

Wenn Sie Daten in Microsoft Dynamics 365 einfügen möchten, indem Sie das Entity Data Model verwenden, müssen Sie eine Instanz eines Entitätstyps erstellen und das Objekt zu einem Organisationsservicekontext hinzufügen. Der Organisationsservicekontext muss das Objekt nachverfolgen, damit er das Objekt in Microsoft Dynamics 365 speichern kann.

Wenn Sie einen neuen Entitätsdatensatz erstellen, fügen Sie das Objekt zum Organisationsservicekontext hinzu, indem Sie die OrganizationServiceContext.AddObject-Methode verwenden.

Das folgende Beispiel zeigt, wie Sie einen neuen Kontaktdatensatz mithilfe des Entity Data Models instanziieren und speichern. Es veranschaulicht außerdem den Zugriff auf ein benutzerdefiniertes 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();

Nachdem Sie ein Objekt zum Kontext hinzugefügt haben und bevor die OrganizationServiceContext.SaveChanges-Methode aufgerufen wird, generiert der Kontext eine ID für das neue Objekt. Eine Ausnahme, die SaveChangesResults enthält, wird über die SaveChanges-Methode ausgelöst, wenn Aktualisierungen an den Microsoft Dynamics 365-Daten nicht erfolgreich sind.

Aktualisieren eines Entitätsdatensatzes mithilfe von Entitätsklassen mit früher Bindung und der OrganizationServiceContext-Klasse

Änderungen an Objekten, die an den Organisationsservicekontext angefügt sind, werden von Microsoft Dynamics 365 nachverfolgt. Um einen vorhandenen Entitätsdatensatz zu ändern, müssen Sie zunächst das Objekt zum Kontext hinzufügen. Um ein Objekt zum Kontext hinzufügen, müssen Sie zunächst den Entitätsdatensatz aus Microsoft Dynamics 365 abrufen und dann das Objekt zum Kontext hinzufügen, indem Sie die OrganizationServiceContext.Attach-Methode verwenden. Wenn das Objekt vom Kontext nachverfolgt wird, können Sie den Datensatz aktualisieren, indem Sie die Attribute der Entität festlegen.

Das folgende Beispiel zeigt, wie ein Kontenattribut mithilfe von Klassen mit früher Bindung aktualisiert wird.

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

Das folgende Beispiel zeigt, wie ein Attributwert gelöscht wird.

Account.EMailAddress1 = null;

Es gibt zwei partielle Methoden mit der Bezeichnung OnPropertyChanging und OnPropertyChanged für jede Entität. Diese Methoden werden im Eigenschaftensetter aufgerufen. Sie können diese Methoden erweitern, indem Sie partielle Klassen verwenden, um benutzerdefinierte Geschäftslogik einzufügen.

Löschen eines Entitätsdatensatzes mithilfe von Entitätsklassen mit früher Bindung und der OrganizationServiceContext-Klasse

Der Organisationsservicekontext muss das Objekt nachverfolgen, damit ein Entitätsdatensatz gelöscht werden kann. Nachdem das Objekt im Kontext verfügbar ist, können Sie die OrganizationServiceContext.DeleteObject-Methode verwenden, um das Objekt im Kontext zum Löschen zu markieren. Beachten Sie, dass der Entitätsdatensatz in Microsoft Dynamics 365 erst gelöscht wird, wenn die OrganizationServiceContext.SaveChanges-Methode aufgerufen wird.

Verwenden von Entitätsklassen mit früher Bindung ohne ein Kontextobjekt

Sie können die Entitätsklassen mit früher Bindung verwenden, ohne ein Organisationsservice-Kontextobjekt zu erstellen, wenn Sie kein Kontextobjekt erstellen möchten. Die OrganizationServiceProxy-Klasse enthält einen OrganizationServiceProxy.Create-Methode, die verwendet werden kann, um Änderungen am Entitätsdatensatz in Microsoft Dynamics 365 zu speichern.

Das folgende Beispiel zeigt, wie Sie eine Entitätsklasse mit früher Bindung verwenden, ohne ein Organisationsservice-Kontextobjekt zu erstellen. Der OrganizationServiceProxy. Die Create-Methode gibt die GUID-ID zurück, die dem neu erstellten Entitätsdatensatz zugewiesen wurde.

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

Um einen Entitätsdatensatz in Microsoft Dynamics 365 zu aktualisieren, rufen Sie die zu aktualisierenden Daten ab, nehmen die benötigten Änderungen vor und verwenden dann die OrganizationServiceProxy.Update-Methode, um diese Änderungen Microsoft Dynamics 365 zu übernehmen. Zum Abrufen von Entitätsdatensätzen verwenden Sie den OrganizationServiceProxy.Retrieve-Methode für den Einzelobjektabruf oder OrganizationServiceProxy.RetrieveMultiple-Methode für das Abrufen mehrerer Objekten. Um einen Entitätsdatensatz zu löschen, verwenden Sie OrganizationServiceProxy..Delete-Methode.

Siehe auch

Verwenden Sie im Code die Entitätsklassen mit früher Bindung
Verwenden Sie die früh gebundenen Entitätsklassen, um Zuordnungen zwischen verwandten Datensätzen hinzuzufügen oder zu aktualisieren
Entitätsklassen mit früher Bindung mit dem Codegenerierungstool erstellen (CrmSvcUtil.exe)
Beispiel: Erstellen, Abrufen, Aktualisieren und Löschen von Datensätzen (frühe Bindung)

Microsoft Dynamics 365

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright