Partager via


Utiliser UpsertMultiple (version préliminaire)

[Cette rubrique fait partie de la documentation en version préliminaire et peut faire l'objet de modifications.]

Important

Cette fonctionnalité est en version préliminaire.

Les fonctionnalités préliminaires ne sont pas destinées à une utilisation en production et peuvent avoir des fonctionnalités restreintes. Ces fonctionnalités sont disponibles avant une publication officielle afin que les clients puissent y accéder de façon anticipée et fournir des commentaires.

Utilisez Upsert pour intégrer des données avec des sources externes lorsque vous ne savez pas si la table existe dans Dataverse ou non. Les opérations Upsert dépendent fréquemment de clés alternatives pour identifier les enregistrements. Utilisez UpsertMultiple pour exécuter des opérations Upsert en bloc.

Utilise la classe UpsertMultipleRequest.

Cette méthode statique UpsertMultipleExample dépend d’une table samples_bankaccount qui a une colonne de chaîne nommée samples_accountname configurée comme clé secondaire. Il comporte également une colonne de chaîne nommée samples_description. Ce code utilise le constructeur Entité qui définit keyName et keyValue pour spécifier la valeur clé secondaire.

/// <summary>
/// Demonstrates using UpsertMultiple with alternate key values
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance</param>
static void UpsertMultipleExample(IOrganizationService service)
{
    var tableLogicalName = "samples_bankaccount";
    // samples_accountname string column is configued as an alternate key
    // for the samples_bankaccount table
    var altKeyColumnLogicalName = "samples_accountname";

    // Create one record to update with upsert
    service.Create(new Entity(tableLogicalName)
    {
        Attributes =
        {
            {altKeyColumnLogicalName, "Record For Update"},
            {"samples_description","A record to update using Upsert" }
        }
    });

    // Using the Entity constructor to specify alternate key
    Entity toUpdate = new(
            entityName: tableLogicalName,
            keyName: altKeyColumnLogicalName,
            // Same alternate key value as created record.
            keyValue: "Record For Update");
    toUpdate["samples_description"] = "Updated using Upsert";

    Entity toCreate = new(
        entityName: tableLogicalName,
        keyName: altKeyColumnLogicalName,
        keyValue: "Record For Create");
    toCreate["samples_description"] = "A record to create using Upsert";

    // Add the records to a collection
    EntityCollection records = new()
    {
        EntityName = tableLogicalName,
        Entities = { toUpdate, toCreate }
    };

    // Send the request
    UpsertMultipleRequest request = new()
    {
        Targets = records
    };

    var response = (UpsertMultipleResponse)service.Execute(request);

    // Process the responses:
    foreach (UpsertResponse item in response.Results)
    {
        Console.WriteLine($"Record {(item.RecordCreated ? "Created" : "Updated")}");
    }
}

Sortie :

Record Updated
Record Created

Disponibilité

UpsertMultiple est disponible pour les tables prenant en charge CreateMultiple et UpdateMultiple. Cela inclut toutes les tables Elastic. Les requêtes trouvées dans Disponibilité avec les tables standards ne renverront pas de résultats pour UpsertMultiple.

Examples

Vous pouvez trouver un exemple de code sur GitHub dans github.com/microsoft/PowerApps-Samples :

Dans Exemple : SDK pour .NET Utiliser des opérations groupées, recherchez le projet UpsertMultiple

Voir aussi

Utiliser les messages d’opération en bloc
Tableaux élastiques
Exemple : Opérations en bloc SDK pour .NET