XRM-Tools verwenden, um Daten abzurufen
Es gibt zahlreiche Möglichkeiten in der Klassen CrmServiceClient und ServiceClient zum Abrufen von Daten in Microsoft Dataverse. Die folgenden Beispiele zeigen, wie Sie einen Datensatz nach ID oder per FetchXML-Abfrage abrufen können.
Lesen Sie die folgenden wichtigen Informationen zur Verwendung einer Verbindungszeichenfolge im Anwendungscode.
Wichtig
Microsoft empfiehlt, den sichersten verfügbaren Authentifizierungsflow zu verwenden. Der in diesem Artikel beschriebene Authentifizierungsablauf erfordert ein sehr hohes Maß an Vertrauen in die Anwendung und birgt Risiken, die in anderen Flows nicht vorhanden sind. Sie sollten diesen Flow nur verwenden, wenn andere, sicherere Flows, z. B. verwaltete Identitäten, nicht funktionsfähig sind.
GetEntityDataById
Diese Methode sucht nach einer Tabelle anhand der angegebenen ID. In diesem Beispiel geben wir null für den Feldlistenwert an, um alle Spalten des angegebenen Tabellendatensatzes (Kontos) abzurufen, und zeigen dann den Namen des abgerufenen Kontodatensatzes an.
Bei Verwendung der ServiceClient
-Klasse finden Sie die Get-Methode hier: QueryExtensions.GetEntityDataById.
CrmServiceClient svc = new CrmServiceClient(connectionstring);
// ServiceClient svc = new ServiceClient(connectionstring);
// Verify that you are connected.
if (svc != null && svc.IsReady)
{
Dictionary<string, object> data = svc.GetEntityDataById("account", <Account_ID>, null);
foreach (var pair in data)
{
if (pair.Key == "name")
{
Console.WriteLine("Name of the account is {0}", pair.Value);
}
}
}
else
{
// Display the last error.
Console.WriteLine("An error occurred: {0}", svc.LastCrmError);
// Display the last exception message if any.
Console.WriteLine(svc.LastCrmException.Message);
Console.WriteLine(svc.LastCrmException.Source);
Console.WriteLine(svc.LastCrmException.StackTrace);
return;
}
GetEntityDataByFetchSearchEC
Diese Methode sucht anhand der angegebenen nach der definierten FetchXML
Abfrage. In diesem Beispiel rufen wir die Zählung aller Firmendatensätze im System ab und zeigen sie an.
Bei Verwendung der ServiceClient
-Klasse finden Sie die Abfragemethode hier: QueryExtensions.GetEntityDataByFetchSearch.
CrmServiceClient svc = new CrmServiceClient(connectionstring);
// ServiceClient svc = new ServiceClient(connectionstring);
// Verify that you are connected.
if (svc != null && svc.IsReady)
{
string fetchXML =
@"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false' returntotalrecordcount='true' >
<entity name='account'>
<attribute name='accountid' />
</entity>
</fetch>";
var queryResult = crmSvc.GetEntityDataByFetchSearchEC(fetchXML);
if (queryResult != null)
{
Console.WriteLine(String.Format("Account Records Count : {0}", queryResult.TotalRecordCount));
}
}
else
{
// Display the last error.
Console.WriteLine("An error occurred: {0}", svc.LastCrmError);
// Display the last exception message if any.
Console.WriteLine(svc.LastCrmException.Message);
Console.WriteLine(svc.LastCrmException.Source);
Console.WriteLine(svc.LastCrmException.StackTrace);
return;
}
Siehe auch
Verwenden von XRM-Tooling, um eine Verbindung mit Dataverse herzustellen
XRM Tooling API zur Ausführung von Aktionen in Dataverse verwenden