> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Entity API 重构升级教程

> 将使用旧的 PlayFabEntityModel API 组的 PlayFab 代码升级到新的逻辑实体 API 组，附带 C# SDK 迁移演练。

## 简介

我们已将过去归入 Entity API 组下的 API 重组为连贯的逻辑组，使其无论是通过[文档站点](/services/playfab/api-references)还是通过 PlayFab SDK 都更易于使用。

直接影响是，如果你一直在游戏中使用基于实体的 API，则在升级 SDK 时需要更新代码。

## 先决条件

以下条件必须成立，此升级指南才适用于你：

1. 你正在使用基于实体的 PlayFab API。
2. 你已升级到 2018 年 8 月 9 日或之后发布的 PlayFab SDK。

<Note>
  服务级别*没有*任何更改。例如，使用旧 SDK 的现有 title 无需更改即可正常工作。
</Note>

## 如何升级

此更改的根本影响是 `PlayFabEntityModel` API 组已被分离为六个不同的、按逻辑绑定在一起的 API 组，如下图所示。

<img src="https://mintcdn.com/microsoft-4404708b/3hg2JQs0m7qmDqay/images/playfab/live-service-management/game-configuration/entities/tutorials/changes-to-playfabentitymodel-api-group.png?fit=max&auto=format&n=3hg2JQs0m7qmDqay&q=85&s=f40f3a4c1fd1d2721e3b6c1bfde121e9" alt="Changes to PlayFabEntityModel API group" width="460" height="558" data-path="images/playfab/live-service-management/game-configuration/entities/tutorials/changes-to-playfabentitymodel-api-group.png" />

**旧 Entity API** -> **新 API** 映射的完整列表可以在本教程的 [附录 1](#appendix-1-old-to-new-api-mappings) 中找到。

<Note>
  经典 API 映射*没有*受到影响。
</Note>

下一节将引导你完成使用 `PlayFabEntityAPIGroup` 的 C# SDK 升级到新的 API 组集合的示例。

## 升级示例：C# SDK

请按照以下步骤升级你的应用程序。

**步骤 1**：更改任何引用 `PlayFab.EntityModels` 的 `using` 语句，例如下面所示。

```csharp theme={null}
using PlayFab.EntityModels;
using PlayFab.DataModels;
```

现在你可以细化选择要引入哪些 API，而不是导入整个 Entity API 组。

**步骤 2**：下面提供了一个更深入的新 API 编码示例，并附有关于它以前样子的注释。

```csharp theme={null}
public async void Example()
{
       var logrequest = new PlayFab.ClientModels.LoginWithCustomIDRequest
       {
           CustomId = "TestExample",
           CreateAccount = true,
       };

       var loginResult = await PlayFab.PlayFabClientAPI.LoginWithCustomIDAsync(logrequest);
       var playfabId = loginResult?.Result?.PlayFabId;

       // PlayFab EntityAPI has been replaced here with the PlayFabProfilesAPI
       // and PlayFab.EntityModels has been replaced with PlayFab.ProfileModels
       var getProfileResult = await PlayFab.PlayFabProfilesAPI.GetProfileAsync(new
       PlayFab.ProfilesModels.GetEntityProfileRequest());
       var profile = getProfileResult?.Result?.Profile;
}
```

对其他 SDK 依此类推，
使用本教程 [附录 1](#appendix-1-old-to-new-api-mappings) 中的映射。

## 总结

根据你的反馈，我们很高兴以更直观的方式在文档站点和代码中公开 Entity API。

如果你有任何问题和意见，请通过 [PlayFab 论坛](https://community.playfab.com/index.html)联系我们。

## 附录 1：旧 API 到新 API 的映射

下面列出的所有 API *以前*都是 `PlayFabEntityModel` API 组的一部分。它们*现在*归入以下新的 API 组。

### PlayFabProfilesApi

* GetGlobalPolicy
* GetProfile
* GetProfiles
* SetGlobalPolicy
* SetProfilePolicy

### PlayFabAuthenticationApi

* GetEntityToken

### PlayFabDataApi

* AbortFileUploads
* DeleteFiles
* FinalizeFileUploads
* GetFiles
* InitiateFileUploads
* GetObjects
* SetObjects

### PlayFabGroupsApi

* AcceptGroupApplication
* AcceptGroupInvitation
* AddMembers
* ApplyToGroup
* BlockEntity
* ChangeMemberRole
* CreateGroup
* CreateRole
* DeleteGroup
* DeleteRole
* GetEntityToken
* GetGroup
* InviteToGroup
* IsMember
* ListGroupApplications
* ListGroupBlocks
* ListGroupInvitations
* ListGroupMembers
* ListMembershipOpportunities
* RemoveGroupApplication
* RemoveGroupInvitation
* RemoveMembers
* UnblockEntity
* UpdateGroup
* UpdateRole

### PlayFabEventsApi

* WriteEvents

### PlayFabCloudScriptApi

* ExecuteEntityCloudScript


## Related topics

- [推送通知模板](/zh-CN/services/playfab/live-service-management/game-configuration/title-communications/push-notifications/push-notification-templates.md)
- [账户升级](/zh-CN/services/playfab/pricing/account-upgrades.md)
- [GSDK 示例项目创建](/zh-CN/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-project-setup.md)
- [事件管道教程](/zh-CN/services/playfab/sdks/c/event-pipeline/eventpipeline-tutorial.md)
- [针对整个玩家分段的批量操作](/zh-CN/services/playfab/data-analytics/acting-data/action-rules-bulk-actions-for-an-entire-player-segment.md)
