DataverseModel 类
结构协议允许将类型化实体实例传递给和records.update()传递records.create()。
在任何实体类(dataclass、Pydantic 模型、手动滚动)上实现此协议,使其可以直接传递到 CRUD 操作,而无需指定表名称或手动转换为听写。
必需的类变量:
__entity_logical_name__— Dataverse 逻辑实体名称(例如"account")__entity_set_name__— OData 实体集名称(例如"accounts")
必需的实例方法:
to_dict()— 将记录有效负载返回为dictfrom_dict(data)— 从响应中重新构造的 classmethoddict
示例:
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