gpt4 book ai didi

linq - 是否可以在 Dynamics CRM 中使用 LINQ 来获取不在集合中的所有帐户?

转载 作者:行者123 更新时间:2023-12-04 21:58:31 25 4
gpt4 key购买 nike

如何编写 LINQ 查询以返回帐号不在列表中的所有帐户?
该列表将从 Excel 文档中提取。

private bool GetAccounts()
{
List<String> accountIds = new List<String>();
accountIds.Add( "[unknown]");
var query = from accounts in context.AccountSet where !accountIds.Contains(accounts.AccountNumber) select accounts;
}

它不必是一个列表。

编辑

这是运行上述查询时发生的情况 - 这是 CRM 的错吗?
enter image description here

最佳答案

我不相信你可以通过 linq。这是 SDK 中的 where 子句限制。

where => The left side of the clause must be an attribute name and the right side of the clause must be a value. You cannot set the left side to a constant. Both the sides of the clause cannot be constants.

Supports the String functions Contains, StartsWith, EndsWith, and Equals.



您可以通过使用 QueryExpression 或 FetchExpressions 来绕过这些限制。使用 QueryExpression,您想要的查询将如下所示。我要提到的唯一一件事是,如果您期待大量记录(我相信 5000+),您很可能还需要为您的功能实现分页。
private static IEnumerable<Account> GetAccounts(IOrganizationService proxy)
{
List<String> accountIds = new List<String>(new string[]{"654321", "12345"});

var results = proxy.RetrieveMultiple(new QueryExpression(Account.EntityLogicalName)
{
ColumnSet = new ColumnSet("accountid", "name", "accountnumber"),
Criteria = new FilterExpression()
{
Conditions = { new ConditionExpression("accountnumber", ConditionOperator.NotIn, accountIds) }
}
});

return results.Entities.Select(x=> x.ToEntity<Account>());
}

关于linq - 是否可以在 Dynamics CRM 中使用 LINQ 来获取不在集合中的所有帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15718731/

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