|
Ve'ye records.create()records.update()geçirilecek türlenmiş varlık örneklerini etkinleştiren Yapısal Protokol.
Tablo adını belirtmeden veya el ile dikteye dönüştürmeden crud işlemlerine doğrudan geçirilmesini sağlamak için bu Protokolü herhangi bir varlık sınıfına (dataclass, Pydantic model, hand-rolled) uygulayın.
Gerekli sınıf değişkenleri:
Gerekli örnek yöntemleri:
Example:
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
Tablo adı olmadan doğrudan gönderim (client.records.create(entity)
veya dict) henüz desteklenmemektedir ve gelecekteki bir sürüme eklenecektir.
|