Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Normalerweise rufen Sie eine Zeile basierend auf den Ergebnissen einer Abfrage ab und die Abfrageergebnisse sollten einen eindeutigen Bezeichner für die Zeile enthalten.
Anmerkung
In den folgenden Beispielen repräsentiert die Variable accountid den Bezeichner Guid für eine Kontozeile.
Sie haben einige Optionen zum Definieren der Daten, die beim Abrufen einer Zeile zurückgegeben werden. Sie werden die Klasse ColumnSet verwenden, um zu definieren, welche Spaltenwerte (Attribute) Sie benötigen.
Wichtig
Beim Abrufen von Zeilen sollten Sie nur die benötigten Spaltenwerte anfordern, indem Sie die spezifischen Spalten mit dem Klassenkonstruktor ColumnSet angeben. Obwohl ColumnSet-Klassenkonstruktor eine Überladung bietet, die einem Booleschen Parameter allColumns annimmt, sollten Sie diese Parameter im Produktionscode nicht verwenden, wenn diese auf True festgelegt sind. Weitere Informationen: Rufen Sie nicht alle Spalten einer Entität zur Abfrage von APIs ab
Wenn Sie verwandte Zeilen zurückgeben müssen, können Sie eine Abfrage in Ihre Abrufanforderung einschließen, um zu definieren, welche verwandten Zeilen zurückgegeben werden sollen.
Grundlegende Abfragen
Sie können einzelne Zeilen abrufen, indem Sie entweder die IOrganizationService.Retrieve Methode verwenden oder die Target Eigenschaft der RetrieveRequest Klasse auf eine Referenzzeile festlegen und die IOrganizationService.Execute Methode verwenden.
Dieses Beispiel zeigt die Nutzung der Methode.
Entity entity = svc.Retrieve("account", accountid, new ColumnSet("name"));
Console.WriteLine("account name: {0}", entity["name"]);
Dieses Beispiel zeigt Nutzung der RetrieveRequest und RetrieveResponse mit der IOrganizationService.Execute-Methode.
RetrieveRequest request = new RetrieveRequest()
{
ColumnSet = new ColumnSet("name"),
Target = new EntityReference("account", accountid)
};
var response = (RetrieveResponse)svc.Execute(request);
Entity entity = response.Entity;
Console.WriteLine("account name: {0}", entity["name"]);
Anmerkung
Meistens verwenden Sie die IOrganizationService.Retrieve-Methode.
Verwenden Sie RetrieveRequest mit der IOrganizationService.Execute-Methode für spezielle Umstände, wie unten beschrieben. Weitere Informationen:
Abrufen mit verwandten Zeilen
Wenn Sie eine einzelne Zeile abrufen, können Sie auch eine Abfrage einschließen, um verwandte Zeilen einzuschließen, indem Sie die Eigenschaft RelatedEntitiesQuery von RetrieveRequest festlegen.
Sie können eine Abfrage mit einer der Klassen definieren, die von QueryBase abgeleitet sind, und sie einer bestimmten Tabellenzeilenbeziehung zuordnen. Fügen Sie eine Sammlungvon Abfragen und Beziehungen der RelatedEntitiesQuery-Eigenschaft mithilfe einer RelationshipQueryCollection hinzu.
Das folgende Beispiel enthält die Zeilen task und contact, die mit der abgerufenen Zeile account verwandt sind.
var relationshipQueryCollection = new RelationshipQueryCollection();
var relatedTasks = new QueryExpression("task");
relatedTasks.ColumnSet = new ColumnSet("subject", "description");
var taskRelationship = new Relationship("Account_Tasks");
relationshipQueryCollection.Add(taskRelationship, relatedTasks);
var relatedContacts = new QueryExpression("contact");
relatedContacts.ColumnSet = new ColumnSet("fullname", "emailaddress1");
var contactRelationship = new Relationship("account_primary_contact");
relationshipQueryCollection.Add(contactRelationship, relatedContacts);
var request = new RetrieveRequest()
{
ColumnSet = new ColumnSet(true),
RelatedEntitiesQuery = relationshipQueryCollection,
Target = new EntityReference("account", accountid)
};
RetrieveResponse response = (RetrieveResponse)svc.Execute(request);
Entity retrievedAccount = response.Entity;
Console.WriteLine("Account Name: {0}",retrievedAccount["name"]);
var tasks = retrievedAccount.RelatedEntities[new Relationship("Account_Tasks")];
Console.WriteLine("Tasks:");
tasks.Entities.ToList().ForEach(x => {
Console.WriteLine(" Task Subject: {0}",x["subject"]);
});
Entity primaryContact = retrievedAccount
.RelatedEntities[new Relationship("account_primary_contact")]
.Entities.FirstOrDefault();
Console.WriteLine("Primary Contact Fullname: {0}",primaryContact["fullname"]);
Das Ergebnis des Beispiels könnte wie folgt aussehen:
Account Name: City Power & Light (sample)
Tasks:
Task Subject: Task 1
Task Subject: Task 2
Primary Contact Fullname: Scott Konersmann (sample)
Weitere Informationen: Daten mithilfe des SDK für .NET abfragen
Abruf mit einem Alternativschlüssel
Wenn Sie eine Tabelle zur Verwendung eines Alternativschlüssel konfiguriert haben, können Sie diesen Alternativschlüssel verwenden, um eine EntityReference zu definieren und diesen Wert als RetrieveRequest.Target Eigenschaft zu übergeben.
Wenn Sie beispielsweise die Spalte accountaccountnumber als Alternativschlüssel definieren, können Sie ein Konto mit dem Wert dieser Spalte abrufen.
RetrieveRequest request = new RetrieveRequest()
{
ColumnSet = new ColumnSet("name"),
Target = new EntityReference("account", "accountnumber", "0001")
};
var response = (RetrieveResponse)svc.Execute(request);
Entity entity = response.Entity;
Console.WriteLine(entity["name"]);
Wenn Ihr Alternativschlüssel aus mehreren Spalten (Attributen) besteht, definieren Sie eine KeyAttributeCollection. Das folgende Beispiel gilt für ein Konto mit einem Alternativschlüssel, der die Attribute accountnumber und sic enthält.
var keyCollection = new KeyAttributeCollection();
keyCollection.Add("accountnumber", "0001");
keyCollection.Add("sic", "7372");
RetrieveRequest request = new RetrieveRequest()
{
ColumnSet = new ColumnSet("name"),
Target = new EntityReference("account", keyCollection)
};
var response = (RetrieveResponse)svc.Execute(request);
Entity entity = response.Entity;
Console.WriteLine(entity["name"]);
Anmerkung
Alternativschlüssel werden in der Regel nur für Datenenintegrationsszenarien verwendet
Abrufen von Datensätzen aus elastischen Tabellen
Wenn Sie elastische Tabellen-Datenspeicher in Partitionen abrufen, müssen Sie beim Abrufen dieser Daten unbedingt den Partitionsschlüssel angeben. Weitere Informationen: Abrufen eines Datensatzes in einer elastischen Tabelle
Zugriff formatierte Werte
Die Methode, um formattierte Werte in einem Abrufensvorgang abzurufen ist gleich, wie wenn Sie auf die Ergebnisse in einer Abfrage zugreifen. Weitere Informationen: Zugriff auf formatierte Werte
Siehe auch
Tabellenzeilen mit dem SDK für .NET erstellen
Aktualisieren und Löschen von Tabellenzeilen über die SDK für .NET
Zuordnen und Aufheben der Zuordnung von Tabellenzeilen über das SDK für .NET