在我的插件中,我有一个实体列表。我想应用在输入参数中传递的查询表达式
QueryExpression query = PluginExecutionContext.InputParameters["Query"];
到类型实体的自定义列表。
List<Entity> myList;
列表中的实体与插件上下文中使用的实体具有相同的属性。有没有办法将 QueryExpression 应用于实体列表,或将 QueryExpression 转换为 linq?
在我的插件中,我有一个实体列表。我想应用在输入参数中传递的查询表达式
QueryExpression query = PluginExecutionContext.InputParameters["Query"];
到类型实体的自定义列表。
List<Entity> myList;
列表中的实体与插件上下文中使用的实体具有相同的属性。有没有办法将 QueryExpression 应用于实体列表,或将 QueryExpression 转换为 linq?
QueryExpression 实际上只是 FetchXML 的包装器,它只是 Dynamics CRM 中查询的 XML 模式。如果您想将查询作为参数传递给插件,您可以设置一个自定义实体调用“query”或类似的东西,并将一个 textarea 类型的字段添加到名为“fetchxml”的自定义实体中。然后设置插件的输入参数以接受该自定义实体的记录而不是文本参数。这有一个额外的好处,允许您更轻松地编辑插件的输入参数。
当然,您总是可以将原始的 fetchXML 作为文本放入参数中,但我可以根据经验告诉您,这会反过来咬您,因为它极难维护,因为系统中其他地方的任何更改都可能完全破坏您的插入。
如果您想了解更多有关如何获取某个查询的 fetchXML 或有任何其他问题的信息,请给我留言。
有没有办法将 QueryExpression 应用于实体列表
答案是否定的。
QueryExpression & FetchXML 是 Dynamics CRM 的本机,它只能用于 CRM 服务(数据库)。我假设这个插件在 Retrieve 消息上,并且您正在尝试使用来自该 Retrieve 服务调用的系统查询表达式来针对您自己的实体数据集 ( List<Entity>
)。但为什么?
,或将 QueryExpression 转换为 linq?
不,我知道反过来也是可能的。