From 336bd90465e26f18a5e6ba32d861017af00f195e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 27 Dec 2020 21:33:15 +0300 Subject: [PATCH] Added Navigation Properties section to the module entity extensions document. --- docs/en/Module-Entity-Extensions.md | 104 ++++++++++++++++++ docs/en/Object-Extensions.md | 4 + .../extension-navigation-property-form.png | Bin 0 -> 24515 bytes .../extension-navigation-property-table.png | Bin 0 -> 39152 bytes 4 files changed, 108 insertions(+) create mode 100644 docs/en/images/extension-navigation-property-form.png create mode 100644 docs/en/images/extension-navigation-property-table.png diff --git a/docs/en/Module-Entity-Extensions.md b/docs/en/Module-Entity-Extensions.md index 042c10b815..dc23d1e663 100644 --- a/docs/en/Module-Entity-Extensions.md +++ b/docs/en/Module-Entity-Extensions.md @@ -1,5 +1,7 @@ # Module Entity Extensions +> This feature is not supported by the Blazor UI yet. + ## Introduction Module entity extension system is a **high level** extension system that allows you to **define new properties** for existing entities of the depended modules. It automatically **adds properties to the entity, database, HTTP API and the user interface** in a single point. @@ -325,6 +327,108 @@ One of the following names can be used as the localization key: Localization system searches for the key with the given order. Localized text are used on the table and the create/edit forms. +### Navigation Properties / Foreign Keys + +It is supported to add an extension property to an entity that is Id of another entity (foreign key). + +#### Example: Associate a department to a user + +````csharp +ObjectExtensionManager.Instance.Modules() + .ConfigureIdentity(identity => + { + identity.ConfigureUser(user => + { + user.AddOrUpdateProperty( + "DepartmentId", + property => + { + property.UI.Lookup.Url = "/api/departments"; + property.UI.Lookup.DisplayPropertyName = "name"; + } + ); + }); + }); +```` + +`UI.Lookup.Url` option takes a URL to get list of departments to select on edit/create forms. This endpoint can be a typical controller, an [auto API controller](API/Auto-API-Controllers.md) or any type of endpoint that returns a proper JSON response. + +An example implementation that returns a fixed list of departments (in real life, you get the list from a data source): + +````csharp +[Route("api/departments")] +public class DepartmentController : AbpController +{ + [HttpGet] + public async Task> GetAsync() + { + return new ListResultDto( + new[] + { + new DepartmentDto + { + Id = Guid.Parse("6267f0df-870f-4173-be44-d74b4b56d2bd"), + Name = "Human Resources" + }, + new DepartmentDto + { + Id = Guid.Parse("21c7b61f-330c-489e-8b8c-80e0a78a5cc5"), + Name = "Production" + } + } + ); + } +} +```` + +This API returns such a JSON response: + +````json +{ + "items": [{ + "id": "6267f0df-870f-4173-be44-d74b4b56d2bd", + "name": "Human Resources" + }, { + "id": "21c7b61f-330c-489e-8b8c-80e0a78a5cc5", + "name": "Production" + }] +} +```` + +ABP can now show an auto-complete select component to pick the department while creating or editing a user: + +![extension-navigation-property-form](images/extension-navigation-property-form.png) + +And shows the department name on the data table: + +![extension-navigation-property-form](images/extension-navigation-property-table.png) + +#### Lookup Options + +`UI.Lookup` has the following options to customize how to read the response returned from the `Url`: + +* `Url`: The endpoint to get the list of target entities. This is used on edit and create forms. +* `DisplayPropertyName`: The property in the JSON response to read the display name of the target entity to show on the UI. Default: `text`. +* `ValuePropertyName`: The property in the JSON response to read the Id of the target entity. Default: `id`. +* `FilterParamName`: ABP allows to search/filter the entity list on edit/create forms. This is especially useful if the target list contains a lot of items. In this case, you can return a limited list (top 100, for example) and allow user to search on the list. ABP sends filter text to the server (as a simple query string) with the name of this option. Default: `filter`. +* `ResultListPropertyName`: By default, returned JSON result should contain the entity list in an `items` array. You can change the name of this field. Default: `items`. + +#### Lookup Properties: How Display Name Works? + +You may wonder how ABP shows the department name on the data table above. + +It is easy to understand how to fill the dropdown on edit and create forms: ABP makes an AJAX request to the given URL. It re-requests whenever user types to filter the items. + +However, for the data table, multiple items are shown on the UI and performing a separate AJAX call to get display name of the department for each row would not be so efficient. + +Instead, the display name of the foreign entity is also saved as an extra property of the entity (see *Extra Properties* section of the [Entities](Entities.md) document) in addition to Id of the foreign entity. If you check the database, you can see the `DepartmentId_Text` in the `ExtraProperties` field in the database table: + +````json +{"DepartmentId":"21c7b61f-330c-489e-8b8c-80e0a78a5cc5","DepartmentId_Text":"Production"} +```` + +So, this is a type of *data duplication*. If your target entity's name changes in the database later, there is no automatic synchronization system. The system works as expected, but you see the old name on the data tables. If that's a problem for you, you should care yourself to update this information when display name of your entity changes. + ## Database Mapping For relational databases, all extension property values are stored in a single field in the table: diff --git a/docs/en/Object-Extensions.md b/docs/en/Object-Extensions.md index 308be4bfa7..72265b2690 100644 --- a/docs/en/Object-Extensions.md +++ b/docs/en/Object-Extensions.md @@ -410,3 +410,7 @@ ObjectExtensionManager.Instance ```` See the [Entity Framework Core Integration document](Entity-Framework-Core.md) for more. + +## See Also + +* [Module Entity Extensions](Module-Entity-Extensions.md) \ No newline at end of file diff --git a/docs/en/images/extension-navigation-property-form.png b/docs/en/images/extension-navigation-property-form.png new file mode 100644 index 0000000000000000000000000000000000000000..5e55ce3afda62249e806f1aabc0821359346d5bd GIT binary patch literal 24515 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 literal 0 HcmV?d00001 diff --git a/docs/en/images/extension-navigation-property-table.png b/docs/en/images/extension-navigation-property-table.png new file mode 100644 index 0000000000000000000000000000000000000000..a3f333919cf6c662a00c7769bc7e4502b8280fdb GIT binary patch literal 39152 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