query_builder 模組

流暢查詢建構器,用於建構 OData 查詢。

提供型別安全、可發現的介面,用於針對 Dataverse 資料表建立複雜查詢,並具備方法鏈結。

範例:

# Via client (recommended) -- flat iteration over records
from PowerPlatform.Dataverse.models import col


for record in (client.query.builder("account")
               .select("name", "revenue")
               .where(col("statecode") == 0)
               .where(col("revenue") > 1_000_000)
               .order_by("revenue", descending=True)
               .top(100)
               .execute()):
    print(record["name"])


# With composable expression tree
from PowerPlatform.Dataverse.models import col, raw


for record in (client.query.builder("account")
               .select("name", "revenue")
               .where((col("statecode") == 0) | (col("statecode") == 1))
               .where(col("revenue") > 100000)
               .top(100)
               .execute()):
    print(record["name"])


# Lazy paged iteration (one QueryResult per HTTP page)
for page in (client.query.builder("account")
             .select("name")
             .execute_pages()):
    process_batch(page)


# Get results as a pandas DataFrame
df = (client.query.builder("account")
      .select("name", "telephone1")
      .where(col("statecode") == 0)
      .top(100)
      .execute()
      .to_dataframe())

類別

ExpandOption

導航物業的結構化選項 $expand

允許依照 OData $expand 語法,指定巢狀$select$filter$orderby$top 及單一導航屬性擴充的選項。

範例:


   # Expand Account_Tasks with nested options
   opt = (ExpandOption("Account_Tasks")
          .select("subject", "createdon")
          .filter("contains(subject,'Task')")
          .order_by("createdon", descending=True)
          .top(5))

   query = (client.query.builder("account")
            .select("name")
            .expand(opt)
            .execute())
QueryBuilder

流暢介面,用於建立並執行 OData 查詢,針對同步客戶端。

提供方法鏈以構建具有可組合濾式表達式的複雜查詢。 可獨立使用(經由 build()),或綁定至用戶端(經由 execute)。

QueryParams

打字典由 .QueryBuilder.build()

當將建置結果傳給 client.records.list() 手動時,會提供 IDE 自動補全功能。