具有基于查询的实体数据类型的字段基于来自其他应用程序的实体
Field with Query based entity Data Type based on Entity from other App
目标
我想将基于人物的信息集中在一个 2sxc 应用程序中,并在其他应用程序中重用 'Persons'。就像在新闻应用程序中作为作者的人和在团队应用程序中作为成员的人等等。
我做了什么
为人员管理创建应用程序(NPi_Person):
- 用 'FullName'、'Phone' 等字段定义一个 Person 内容类型。
在另一个应用程序中,例如新闻应用程序 (NPi_News):
- 在 News Content-Type 中定义数据类型为 Entity[=53 的字段 Person_Entity =] 和输入类型 基于查询 entity/item-picker.
- 基于 NPi_Person 使用 DataSource App 创建查询,检索内容类型 Person (query_Person_from_NPi_Person).
- 在entity-query定义的Person_Entity字段参考query_Person_from_NPi_Person 和流(例如 Default)。
问题
NPi_News 应用的 Person_Entity 字段的下拉列表按预期包含来自 Person 的实体NPi_Person 应用程序。问题是 Person 实体不会持久化。意味着在保存并重新打开表单后,字段 Person_Entity 仍然是空的。
这是否意味着数据类型为 实体 和输入类型为 基于查询的字段的来源 entity/item-picker 可能无法派生来自另一个应用程序?
实体字段具有在将应用加载到缓存中时验证的关系。每个应用都是 self-contained,因此仅在该应用内验证关系。
来自另一个应用程序的实体可能存在也可能不存在 - 这是您必须在运行时处理的事情。
所以要存储这些,您必须使用 string-query 然后在您的 cshtml 中从其他应用程序中查找它们(或者您也可以使用从中查找它们的查询来执行此操作字符串键)。它也是 super-fast,但您需要手动执行此操作,因为您要超出默认值 data-model。
关于应用程序中基于人的信息的替代用例的一些想法:我最初问题中的目标可以通过将 DNN User-accounts 视为此类人来实现。对于这种情况,您可以使用 DnnUserProfile 数据源。 dropdown-query 字段输入类型可以获得用户的显示名称作为值字段的值。它的内容在 DNN(安全.. 会员帐户.. 注册设置)中定义。我会将其设置为 [FIRSTNAME] [LASTNAME] [[USERID]]。此内容在编辑表单中是有意义的,同时 USERID 用于在运行时从 App 查询中查找用户信息。缺点是您必须使用 DNN UI(url 链接 [您的域]/ctl/profile/userid/[ID])编辑内容。
目标
我想将基于人物的信息集中在一个 2sxc 应用程序中,并在其他应用程序中重用 'Persons'。就像在新闻应用程序中作为作者的人和在团队应用程序中作为成员的人等等。
我做了什么
为人员管理创建应用程序(NPi_Person):
- 用 'FullName'、'Phone' 等字段定义一个 Person 内容类型。
在另一个应用程序中,例如新闻应用程序 (NPi_News):
- 在 News Content-Type 中定义数据类型为 Entity[=53 的字段 Person_Entity =] 和输入类型 基于查询 entity/item-picker.
- 基于 NPi_Person 使用 DataSource App 创建查询,检索内容类型 Person (query_Person_from_NPi_Person).
- 在entity-query定义的Person_Entity字段参考query_Person_from_NPi_Person 和流(例如 Default)。
问题
NPi_News 应用的 Person_Entity 字段的下拉列表按预期包含来自 Person 的实体NPi_Person 应用程序。问题是 Person 实体不会持久化。意味着在保存并重新打开表单后,字段 Person_Entity 仍然是空的。
这是否意味着数据类型为 实体 和输入类型为 基于查询的字段的来源 entity/item-picker 可能无法派生来自另一个应用程序?
实体字段具有在将应用加载到缓存中时验证的关系。每个应用都是 self-contained,因此仅在该应用内验证关系。
来自另一个应用程序的实体可能存在也可能不存在 - 这是您必须在运行时处理的事情。
所以要存储这些,您必须使用 string-query 然后在您的 cshtml 中从其他应用程序中查找它们(或者您也可以使用从中查找它们的查询来执行此操作字符串键)。它也是 super-fast,但您需要手动执行此操作,因为您要超出默认值 data-model。
关于应用程序中基于人的信息的替代用例的一些想法:我最初问题中的目标可以通过将 DNN User-accounts 视为此类人来实现。对于这种情况,您可以使用 DnnUserProfile 数据源。 dropdown-query 字段输入类型可以获得用户的显示名称作为值字段的值。它的内容在 DNN(安全.. 会员帐户.. 注册设置)中定义。我会将其设置为 [FIRSTNAME] [LASTNAME] [[USERID]]。此内容在编辑表单中是有意义的,同时 USERID 用于在运行时从 App 查询中查找用户信息。缺点是您必须使用 DNN UI(url 链接 [您的域]/ctl/profile/userid/[ID])编辑内容。