Freigeben über


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