DataverseModel 类

结构协议允许将类型化实体实例传递给和records.update()传递records.create()

在任何实体类(dataclass、Pydantic 模型、手动滚动)上实现此协议,使其可以直接传递到 CRUD 操作,而无需指定表名称或手动转换为听写。

必需的类变量:

  • __entity_logical_name__ — Dataverse 逻辑实体名称(例如 "account"

  • __entity_set_name__ — OData 实体集名称(例如 "accounts"

必需的实例方法:

  • to_dict() — 将记录有效负载返回为 dict

  • from_dict(data) — 从响应中重新构造的 classmethod dict

示例:


   from dataclasses import dataclass
   from PowerPlatform.Dataverse import DataverseModel

   @dataclass
   class Account:
       __entity_logical_name__ = "account"
       __entity_set_name__ = "accounts"
       name: str = ""
       telephone1: str = ""

       def to_dict(self) -> dict:
           return {"name": self.name, "telephone1": self.telephone1}

       @classmethod
       def from_dict(cls, data: dict) -> "Account":
           return cls(
               name=data.get("name", ""),
               telephone1=data.get("telephone1", ""),
           )

   # isinstance() works today — Protocol is runtime_checkable:
   assert isinstance(Account(), DataverseModel)

   # Type your own helpers against the Protocol now:
   def save(entity: DataverseModel) -> None:
       data = entity.to_dict()
       client.records.create(entity.__entity_logical_name__, data)

注释

没有表名称的直接调度(client.records.create(entity)

尚不支持或听写,将在将来的版本中添加。

构造函数

DataverseModel(*args, **kwargs)

方法

from_dict

从响应字典重新构造实例。

to_dict

以纯字典的形式返回记录有效负载。

from_dict

从响应字典重新构造实例。

from_dict(data: dict) -> DataverseModel

参数

名称 说明
data
必需

to_dict

以纯字典的形式返回记录有效负载。

to_dict() -> dict