gpt4 book ai didi

c# - 如何将 LINQ 查询限制为给定事件的营销列表?

转载 作者:行者123 更新时间:2023-11-30 21:57:58 25 4
gpt4 key购买 nike

我正在使用 LINQ 查询 CRM,您可以在下方看到我已有的内容。目标是将查询限制在附加到给定事件的营销列表中。我如何在 LINQ 中执行此操作(使用后期绑定(bind))?

List<Guid> GetLists(OrganizationServiceContext context, Guid campaign)
{
var lists =
from list in context.CreateQuery("list")
where /* list is attached to campaign */
select (Guid)list["listid"];
return lists.ToList<Guid>();
}

最佳答案

前提:我对这个问题投了赞成票,因为它非常有趣(我喜欢 LINQ against late bound)并且所涉及的实体不是那么容易查询。

首先是代码:

var lists = from list in context.CreateQuery("list")
join campaignlist in context.CreateQuery("campaignitem") on list["listid"] equals campaignlist["entityid"]
join campaign in context.CreateQuery("campaign") on campaignlist["campaignid"] equals campaign["campaignid"]
where (Guid)campaign["campaignid"] == campaignId
select (Guid)list["listid"];

现在解释一下:

如您所知,listcampaign 是通过 N:N 关系连接的,首先要做的是找到关系名称,在 CRM 中它位于关系之下属性,在本例中是 campaignitem

第二件事是找到关系的外键名称,通常它们是 entitynameid(所以我们可以期待 listidcampaignid) 但在这种情况下不是。而不是 listid 我们有 entityid(这是因为这种关系不仅包含营销列表和事件之间的关系,还包含事件和产品以及其他之间的关系。

关于c# - 如何将 LINQ 查询限制为给定事件的营销列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30370479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com