DataverseModel Класс
Структурный протокол позволяет передавать и передавать records.create()records.update()экземпляры типизированной сущности.
Реализуйте этот протокол в любом классе сущностей (класс данных, модель Pydantic, ручной свернутый), чтобы он мог передаваться непосредственно в операции CRUD без указания имени таблицы или преобразования в дикт вручную.
Обязательные переменные класса:
__entity_logical_name__— имя логической сущности dataverse (например,"account")__entity_set_name__— имя набора сущностей OData (например,"accounts")
Обязательные методы экземпляра:
to_dict()— возвращать полезные данные записи какdictfrom_dict(data)— классметод для восстановления из ответа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)
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