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