Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous récupérerez généralement une ligne en fonction des résultats d’une requête et les résultats de la requête doivent inclure un identificateur unique pour la ligne.
Nonte
Dans les exemples suivants, la variable accountid
représente l’identificateur Guid pour une ligne de compte.
Vous disposez de quelques options pour définir les données renvoyées lorsque vous récupérez une ligne. Vous utilisez la classe ColumnSet pour définir les valeurs de colonne (attribut) dont vous avez besoin.
Important
Lors de la récupération de lignes, vous ne devez demander que les valeurs de colonne dont vous avez besoin en définissant les colonnes spécifiques à l’aide du constructeur de classe ColumnSet. Même si le constructeur de classe ColumnSet fournit une surcharge qui accepte un paramètre allColumns
booléen, vous ne devez pas utiliser ce paramètre défini sur true dans le code de production. Pour plus d’informations, voir Ne pas récupérer toutes les colonnes d’une entité via les API de requête
Si vous devez renvoyer des lignes liées, vous pouvez inclure une requête avec votre demande de récupération pour définir les lignes liées à renvoyer.
Récupération de base
Vous pouvez récupérer des lignes individuelles en utilisant la méthode IOrganizationService.Retrieve ou en définissant la propriété Target de la classe RetrieveRequest sur une ligne de référence et utiliser la méthode IOrganizationService.Execute .
Cet exemple montre comment utiliser la méthode .
Entity entity = svc.Retrieve("account", accountid, new ColumnSet("name"));
Console.WriteLine("account name: {0}", entity["name"]);
Cet exemple montre comment utiliser les classes RetrieveRequest et RetrieveResponse avec la méthode IOrganizationService.Execute.
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"]);
Nonte
La plupart du temps, vous devez utiliser la méthode IOrganizationService.Retrieve.
Utilisez RetrieveRequest avec la méthode IOrganizationService.Execute pour des circonstances particulières, comme décrit ci-dessous. Pour plus d’informations :
Récupérer avec des lignes associées
Lorsque vous récupérez une ligne individuelle, vous pouvez également inclure une requête pour inclure des lignes associées en définissant la propriété RelatedEntitiesQuery de RetrieveRequest.
Vous pouvez définir une requête en utilisant l’une des classes dérivées de QueryBase et l’associer à une relation de ligne de table spécifique. Ajoutez un ensemble de paires de requêtes et de relations à la propriété RelatedEntitiesQuery à l’aide d’une RelationshipQueryCollection.
L’exemple suivant comprend les lignes task
et contact
liées à la ligne account
récupérée.
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"]);
Les résultats de l’exemple pourraient être identiques à ce qui suit :
Account Name: City Power & Light (sample)
Tasks:
Task Subject: Task 1
Task Subject: Task 2
Primary Contact Fullname: Scott Konersmann (sample)
Pour plus d’informations, consultez Interroger les données à l’aide du SDK pour .NET
Récupérer avec une clé secondaire
Si vous avez configuré une table pour utiliser une clé secondaire, vous pouvez utiliser cette clé secondaire pour définir une EntityReference et transmettre cette valeur en tant que propriété RetrieveRequest.Target.
Par exemple, si vous définissez la colonne account
accountnumber
comme clé secondaire, vous pouvez récupérer un compte en utilisant la valeur de cette colonne.
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"]);
Si votre clé secondaire est un composé de plusieurs colonnes (attributs), vous définiriez une KeyAttributeCollection. L’exemple suivant est pour un compte qui a un clé secondaire qui inclut les attributs accountnumber
et sic
.
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"]);
Nonte
Les clés secondaires sont utilisées uniquement pour les scénarios d’intégration de données
Récupérer des enregistrements à partir de tables élastiques
Si vous récupérez des données de tables élastiques stockées dans des partitions, assurez-vous de spécifier la clé de partition lors de la récupération de ces données. Plus d’informations : Récupérer un enregistrement dans une table élastique
Accéder aux valeurs formatées
La méthode pour accéder aux valeurs formatées dans une opération de récupération est la même que celle que vous utiliserez pour y accéder dans les résultats d’une requête. Pour plus d’informations : Accéder aux valeurs formatées
Voir aussi
Créer des lignes de table à l’aide du SDK pour .NET
Mettre à jour et supprimer des lignes de table à l’aide du SDK pour .NET
Associer et dissocier des lignes de tables à l’aide du SDK pour .NET