Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq 尝试执行WHERE IN:无效的“WHERE”条件。实体成员正在调用无效的属性或方法_Linq_Dynamics Crm 2011 - Fatal编程技术网

Linq 尝试执行WHERE IN:无效的“WHERE”条件。实体成员正在调用无效的属性或方法

Linq 尝试执行WHERE IN:无效的“WHERE”条件。实体成员正在调用无效的属性或方法,linq,dynamics-crm-2011,Linq,Dynamics Crm 2011,我正在尝试获取一个案例列表,其AccountID在以前的列表中找到 错误发生在以下内容的最后一行: // Gets the list of permissions for the current contact var perms = ServiceContext.GetCaseAccessByContact(Contact).Cast<Adx_caseaccess>(); // Get the list of account IDs from the permissions li

我正在尝试获取一个案例列表,其AccountID在以前的列表中找到

错误发生在以下内容的最后一行:

// Gets the list of permissions for the current contact
var perms = ServiceContext.GetCaseAccessByContact(Contact).Cast<Adx_caseaccess>();

// Get the list of account IDs from the permissions list
var customerIDs = perms.Select(p => p.adx_accountid).Distinct();

// Get the list of cases that belong to any account whose ID is in the `customerID` list
var openCases = (from c in ServiceContext.IncidentSet where customerIDs.Contains(c.AccountId) select c).ToList();
我不确定错误所说的无效属性是什么。代码已编译,我只是在运行时收到错误。

问题在于。它不支持LINQtoObjects提供程序提供的所有可用选项。在这种情况下,CRM不支持Enumerable.Contains方法

其中: 子句的左侧必须是属性名和 子句的右侧必须是值。不能设置左侧 到一个常数。子句的两边不能都是常量。 支持字符串函数Contains、StartsWith、EndsWith和 平等

您可以通过以下两种方式之一解决此问题:

修改查询以使用更自然的联接。 如果无法进行联接,则可以使用动态Linq在CustomerID中的每个项上生成OR子句的列表。这与Enumerable.Contains的功能类似。 请参阅我的答案或问题的公认答案,了解两种不同的方法来完成此任务。

问题是答案。它不支持LINQtoObjects提供程序提供的所有可用选项。在这种情况下,CRM不支持Enumerable.Contains方法

其中: 子句的左侧必须是属性名和 子句的右侧必须是值。不能设置左侧 到一个常数。子句的两边不能都是常量。 支持字符串函数Contains、StartsWith、EndsWith和 平等

您可以通过以下两种方式之一解决此问题:

修改查询以使用更自然的联接。 如果无法进行联接,则可以使用动态Linq在CustomerID中的每个项上生成OR子句的列表。这与Enumerable.Contains的功能类似。
请参阅我的答案或公认的问题答案,了解两种不同的方法来实现这一点。

那是什么。。。从XrmContext.IncidentSet中的c开始,其中。。。打算做什么?获取AccountID出现在CustomerID中的案例列表,更新问题以澄清。那是什么。。。从XrmContext.IncidentSet中的c开始,其中。。。打算执行此操作?获取其AccountID出现在CustomerID中的案例列表,更新问题以澄清。尝试此操作时,我收到以下错误:Microsoft.Xrm.Sdk.dll中出现“System.ServiceModel.FaultException”“1”类型的异常,但未在用户代码中处理。其他信息:一般SQL错误。尝试此操作时,我收到以下错误:Microsoft.Xrm.Sdk.dll中出现类型为“System.ServiceModel.FaultException”“1”的异常,但未在用户代码中处理。附加信息:一般SQL错误。