【发布时间】:2021-11-18 12:47:47
【问题描述】:
我是 Dynamics 365 开发的新手。我有一个活动,我需要在一个实体中选择一定数量的随机记录,这就像从记录列表中抽奖一样。我将处理许多记录。如何在 C# 中最好地做到这一点?
【问题讨论】:
标签: dynamics-crm microsoft-dynamics
我是 Dynamics 365 开发的新手。我有一个活动,我需要在一个实体中选择一定数量的随机记录,这就像从记录列表中抽奖一样。我将处理许多记录。如何在 C# 中最好地做到这一点?
【问题讨论】:
标签: dynamics-crm microsoft-dynamics
没有获取随机记录的内置功能,一种方法(可能不是最快的方法)是首先检索所有记录,如果您使用 C#,您可以执行 RetrieveMultiple(请记住如果记录超过 5000 条,则需要分页)仅使用 Id(因此 ColumnSet 可以为 false)。
在您检索到 Id 后,您可以将它们放入 List 中并(随机)访问您需要的元素(以 How to access random item in list? 为例查看此链接)。
【讨论】:
基于 Guido 的回答,另一个想法是获取相关记录的最小 CreatedOn 和最大 CreatedOn。然后生成该范围内的随机日期和时间(包括最小值和最大值)。 获取随机记录,查询 CreatedOn 大于随机日期的前 1 个,按 CreatedOn 排序。
或者,如果您先计算记录,则可以在该范围内生成一个随机数,然后使用Skip(random #).Take(1) 进行 LINQ 查询。
【讨论】: