protocol Modül

Yazılan varlık tümleştirmesi için DataverseModel yapısal Protokolü.

Sınıflar

DataverseModel

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:

  • __entity_logical_name__ — Dataverse mantıksal varlık adı (örn. "account")

  • __entity_set_name__ — OData varlık kümesi adı (örn. "accounts")

Gerekli örnek yöntemleri:

  • to_dict() — kayıt yükünü farklı döndür dict

  • from_dict(data) — bir yanıttan yeniden oluşturmak için classmethod dict

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.