DataverseModel Classe
Protocollo strutturale che consente di passare istanze di entità tipate a records.create() e records.update().
Implementare questo protocollo in qualsiasi classe di entità (dataclass, modello Pydantic, rollback manuale) per consentirne il passaggio direttamente alle operazioni CRUD senza specificare il nome della tabella o la conversione in dict manualmente.
Variabili di classe obbligatorie:
__entity_logical_name__— Nome dell'entità logica dataverse (ad esempio"account")__entity_set_name__— Nome del set di entità OData (ad esempio"accounts")
Metodi di istanza obbligatori:
to_dict()— restituire il payload del record comedictfrom_dict(data)— classmethod da ricostruire da una rispostadict
Esempio:
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
Direct dispatch (client.records.create(entity) senza un nome di tabella
o dict) non è ancora supportato e verrà aggiunto in una versione futura.
Costruttore
DataverseModel(*args, **kwargs)
Metodi
| from_dict |
Ricostruire un'istanza da un dizionario di risposta. |
| to_dict |
Restituisce il payload del record come dizionario normale. |
from_dict
Ricostruire un'istanza da un dizionario di risposta.
from_dict(data: dict) -> DataverseModel
Parametri
| Nome | Descrizione |
|---|---|
|
data
Necessario
|
|
to_dict
Restituisce il payload del record come dizionario normale.
to_dict() -> dict