Abrufen einer Tabellenzeile über die SDK für .NET
Normalerweise rufen Sie eine Zeile basierend auf den Ergebnissen einer Abfrage ab und die Abfrageergebnisse sollten einen eindeutigen Bezeichner für die Zeile enthalten.
Hinweis
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 dies im Produktionscode nicht verwenden. 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 Methode IOrganizationService.Retrieve verwenden oder die Eigenschaft Target der Klasse RetrieveRequest auf eine Referenzzeile festlegen und die IOrganizationService.Execute Methode verwenden.
Dies wird im folgenden Beispiel verdeutlicht IOrganizationServiceRetrieve Methode verwenden.
Entity entity = svc.Retrieve("account", accountid, new ColumnSet("name"));
Console.WriteLine("account name: {0}", entity["name"]);
Dieses Beispiel zeigt Nutzung der Klassen 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"]);
Hinweis
Meistens verwenden Sie die IOrganizationService.Retrieve Methode.
Verwenden Sie die RetrieveRequest mit der IOrganizationService.Execute-Methode. 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 übergeben. Eigenschaft verfügbar sind.
Wenn Sie beispielsweise die Spalte account
accountnumber
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"]);
Hinweis
Alternativschlüssel werden in der Regel nur für Datenenintegrationsszenarien verwendet
Abrufen von Datensätzen aus elastischen Tabellen
Wenn Sie Daten aus elastischen Tabellen abrufen, die in Partitionen gespeichert sind, müssen Sie beim Abrufen dieser Daten 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
Hinweis
Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)
Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).