DataverseModel Clase
Protocolo estructural que permite pasar instancias de entidad con tipo a records.create() y records.update().
Implemente este protocolo en cualquier clase de entidad (dataclass, modelo Pydantic, inscrito manualmente) para permitir que se pase directamente a operaciones CRUD sin especificar el nombre de la tabla ni convertir en dict manualmente.
Variables de clase necesarias:
__entity_logical_name__: nombre de entidad lógica de Dataverse (por ejemplo,"account")__entity_set_name__: nombre del conjunto de entidades de OData (por ejemplo,"accounts")
Métodos de instancia necesarios:
to_dict(): devuelve la carga del registro comodictfrom_dict(data)— clasemethod para reconstruir a partir de una respuestadict
Ejemplo:
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)
Nota:
Envío directo (client.records.create(entity) sin un nombre de tabla
o dict) aún no se admite y se agregará en una versión futura.
Constructor
DataverseModel(*args, **kwargs)
Métodos
| from_dict |
Reconstruya una instancia de a partir de un diccionario de respuesta. |
| to_dict |
Devuelve la carga del registro como un diccionario sin formato. |
from_dict
Reconstruya una instancia de a partir de un diccionario de respuesta.
from_dict(data: dict) -> DataverseModel
Parámetros
| Nombre | Description |
|---|---|
|
data
Requerido
|
|
to_dict
Devuelve la carga del registro como un diccionario sin formato.
to_dict() -> dict