通常、クエリの結果に基づいて行を取得し、クエリの結果にはその行の一意な識別子が含まれている必要があります。
注意
次の例では、accountid 変数はアカウント行の Guid 識別子を表します。
行を取得するときに返されるデータを定義するためのいくつかのオプションがあります。 ColumnSet クラスを使用して、必要な列 (属性) 値を定義します。
重要
行を取得する際には、ColumnSet  クラスのコンストラクタを使用して特定のカラムを設定し、必要な列の値のみをリクエストする必要があります。 
              ColumnSet クラスのコンストラクタには、allColumns パラメータを受け付けるオーバーロードがあります。しかし、運用で使用するコードではこのパラメータを使用しないでください。 詳細: クエリ API を使用してエンティティのすべての列を取得することはできません
関連する行を返す必要がある場合は、取得リクエストにクエリを含めて、返す関連する行を定義できます。
基本的な取得
IOrganizationService.Retrieve メソッドを使用するか、Target クラスの RetrieveRequest プロパティを参照行に設定して IOrganizationService.Execute メソッドを使用することで、個々の行を取得できます。
Entity entity = svc.Retrieve("account", accountid, new ColumnSet("name"));
Console.WriteLine("account name: {0}", entity["name"]);
この例では、RetrieveRequest クラスと RetrieveResponse クラスを 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"]);
注意
ほとんどの場合、IOrganizationService.Retrieve メソッドを使用します。
以下の特別な状況では、RetrieveRequest メソッドと組み合わせて を使用します。 詳細情報:
関連行で取得
個々の行を取得する際に、クエリを含めて、RelatedEntitiesQuery の RetrieveRequestプロパティを設定することで関連する行を含めることもできます。
QueryBase から派生したクラスのいずれかを使用してクエリを定義し、それを特定のテーブル行の関係に関連付けることができます。 RelatedEntitiesQuery を使用して、RelationshipQueryCollection プロパティにクエリと関連付けのペアのコレクションを追加します。
次の例には、取得されている task に関連した contact 行と account 行が含まれます。
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"]);
サンプルの結果は次のようになります。
Account Name: City Power & Light (sample)
Tasks:
 Task Subject: Task 1
 Task Subject: Task 2
Primary Contact Fullname: Scott Konersmann (sample)
代替キーで取得
代替キーを使用するようにテーブルを構成した場合、この代替キーを使用して EntityReference を定義し、この値を RetrieveRequest.Target プロパティとして渡すことができます。
たとえば、accountaccountnumber 列を定義して代替キーにすると、その列の値を使用してアカウントを取得できます。
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"]);
代替キーが複数の列 (属性) の複合である場合、KeyAttributeCollection を定義します。 次の例は、accountnumber 属性と 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"]);
注意
代替キーは、データ統合シナリオでのみ使用されます
エラスティック テーブルからレコードを取得する
パーティションに格納されているエラスティック テーブルデータを取得している場合は、そのデータを取得するときに必ずパーティション キーを指定してください。 詳細情報: エラスティック テーブルにレコードを取得する
書式設定された値にアクセスする
取得の操作で書式付き値にアクセスする方法は、クエリの結果で書式付き値にアクセスするときと同じです。 詳細: 書式設定された値にアクセスする
参照
              .NET 用 SDK を使用したテーブル行の作成
              SDK for .NET を使用したテーブル行の更新と削除
              .NET 用 SDK を使用したテーブル行の関連付けと関連付け解除