エンティティ属性と LINQ を使用した結果の順序指定

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

Microsoft Dynamics 365 と Microsoft Dynamics 365 (オンライン) では、検索またはオプション セット (候補リスト) 属性を使用して、LINQ クエリ内の結果の順序を指定できます。 このトピックでは、この種類のクエリの例をいくつか示します。

Order By に対する検索値の使用

次のサンプルは Order By 句での検索属性 PrimaryContactId の使用を示します。


using (ServiceContext svcContext = new ServiceContext(_serviceProxy))
{
 var query_orderbylookup = from a in svcContext.AccountSet
                           where a.Address1_Name == "Contoso Pharmaceuticals"
                           orderby a.PrimaryContactId
                           select new
                           {
                            a.Name,
                            a.Address1_City
                           };
 foreach (var a in query_orderbylookup)
 {
  System.Console.WriteLine(a.Name + " " + a.Address1_City);
 }
}

Using svcContext As New ServiceContext(_serviceProxy)
 Dim query_orderbylookup = From a In svcContext.AccountSet _
                           Where a.Address1_Name.Equals("Contoso Pharmaceuticals") _
                           Order By a.PrimaryContactId _
                           Select New With {Key a.Name,
                                            Key a.Address1_City}
 For Each a In query_orderbylookup
  Console.WriteLine(a.Name & " " & a.Address1_City)
 Next a
End Using

Order By に対する候補リストの使用

次のサンプルは、Order By に対する検索値の使用を示します。


using (ServiceContext svcContext = new ServiceContext(_serviceProxy))
{
 var query_orderbypicklist = from c in svcContext.ContactSet
                             where c.LastName != "Parker" &&
                             c.AccountRoleCode != null
                             orderby c.AccountRoleCode, c.FirstName
                             select new
                             {
                              AccountRole = c.FormattedValues["accountrolecode"],
                              c.FirstName,
                              c.LastName
                             };
 foreach (var c in query_orderbypicklist)
 {
  System.Console.WriteLine(c.AccountRole + " " +
   c.FirstName + " " + c.LastName);
 }
}

Using svcContext As New ServiceContext(_serviceProxy)
 Dim query_orderbypicklist = From c In svcContext.ContactSet _
                             Where c.LastName IsNot "Parker" _
                             AndAlso c.AccountRoleCode IsNot Nothing _
                             Order By c.AccountRoleCode, c.FirstName _
                             Select New With
                                    {Key .AccountRole =
                                        c.FormattedValues("accountrolecode"),
                                     Key c.FirstName, Key c.LastName}
 For Each c In query_orderbypicklist
  Console.WriteLine(c.AccountRole & " " & c.FirstName _
                    & " " & c.LastName)
 Next c
End Using

関連項目

LINQ (.NET 統合言語クエリ) を使用してクエリを作成する
LINQ による大量の結果セットのページング

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権