Usar UpsertMultiple (versión preliminar)
[Este tema es documentación preliminar y está sujeto a modificaciones.]
Importante
Esta es una característica en versión preliminar.
Las vistas previas de características no se han diseñado para un uso de producción y pueden tener una funcionalidad restringida. Estas características están disponibles antes del lanzamiento oficial para que los clientes puedan tener un acceso anticipado y proporcionar comentarios.
Utilice Upsert
para integrar datos con fuentes externas cuando no se sabe si la tabla existe en Dataverse o no.
Las operaciones de upsert frecuentemente dependen de claves alternativas para identificar registros. Utilice UpsertMultiple
para realizar operaciones de Upsert
en masa.
Usa la clase UpsertMultipleRequest.
Este método UpsertMultipleExample
estático depende de una tabla samples_bankaccount
que tiene una columna de cadena con el nombre samples_accountname
configurada como clave alternativa. También tiene una columna de cadena llamada samples_description
. Este código utiliza el Constructor de entidad que establece keyName y keyValue para especificar el valor de clave alternativa.
/// <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")}");
}
}
Salida:
Record Updated
Record Created
Disponibilidad
UpsertMultiple
está disponible para tablas que admiten CreateMultiple
y UpdateMultiple
. Esto incluye todas las tablas elásticas. Las consultas encontradas en Disponibilidad con tablas estándar. no devolverán resultados para UpsertMultiple
.
Ejemplos
Puede encontrar código de muestra en GitHub en github.com/microsoft/PowerApps-Muestras:
Dentro de Muestra: SDK para .NET, Usar operaciones masivas, busque Proyecto UpsertMultiple
Consulte también
Usar mensajes de operación en masa
Tablas elásticas
Muestra: SDK para .NET, Usar operaciones masivas