DataverseModel クラス
型指定されたエンティティ インスタンスを records.create() および records.update()に渡す構造プロトコル。
このプロトコルを任意のエンティティ クラス (dataclass、Pydantic モデル、手動ロール) に実装して、テーブル名を指定したり、手動で dict に変換したりせずに 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)
Note
テーブル名のない直接ディスパッチ (client.records.create(entity)
または dict) はまだサポートされていないため、今後のリリースで追加される予定です。
コンストラクター
DataverseModel(*args, **kwargs)
メソッド
| from_dict |
応答ディクショナリからインスタンスを再構築します。 |
| to_dict |
レコード ペイロードをプレーンディクショナリとして返します。 |
from_dict
応答ディクショナリからインスタンスを再構築します。
from_dict(data: dict) -> DataverseModel
パラメーター
| 名前 | 説明 |
|---|---|
|
data
必須
|
|
to_dict
レコード ペイロードをプレーンディクショナリとして返します。
to_dict() -> dict