【发布时间】:2018-11-20 00:26:08
【问题描述】:
我正在使用 Microsoft Dynamics CRM 2011 和 ADX Studios。在其中一个页面上,我正在尝试制作一个显示用户当前潜在客户数量的小部件。我想做一个 LINQ 查询,选择 CRM 数据库中潜在客户实体的所有者等于当前用户的潜在客户计数。我是 LINQ 的新手,所以我仍在尝试掌握查询的语义。到目前为止,我的代码如下所示,它吸引了所有潜在客户。我不太确定如何使用“where”子句检查所有者 ID 是否等于当前用户的 ID。
count = context.LeadSet.ToList().Count();
【问题讨论】:
-
如何获取当前用户凭据?会是
count = context.LeadSet.Count(lead => lead.OwnerId == currentUserId);吗?您无需调用ToList即可计算实体数量。ToList会将您的所有数据加载到内存中,这远非最佳,而Count扩展方法会将 lambda 谓词转换为 SQL,它只会返回一个数字。 -
首次加载站点时,用户凭据是通过 ADFS 输入的。我似乎无法获得获取 currentUserID 的正确方法。您的代码看起来可能有效,但它一直告诉我它无法解析“currentUserID”。另外作为旁注,我使用了“.ToList()”,因为我只使用“.Count”就收到了错误,并在crmconsultancy.wordpress.com/2011/06/06/… 上发现 CRM 2011 存在“.Count”问题,除非“.ToList”或 .AsEnumerable( )。
标签: c# linq dynamics-crm-2011