C# 我如何使用;在;在Microsoft CRM中检索记录/实体时,LINQ中的where子句?
只是LINQ和Microsoft CRM有一些问题,希望您能提供帮助 用SQL术语来说,我的思路是:C# 我如何使用;在;在Microsoft CRM中检索记录/实体时,LINQ中的where子句?,c#,linq,dynamics-crm-2011,microsoft-dynamics,C#,Linq,Dynamics Crm 2011,Microsoft Dynamics,只是LINQ和Microsoft CRM有一些问题,希望您能提供帮助 用SQL术语来说,我的思路是: select * from table where id in ("1", "2", "3") 我有这段代码,它在从SQL Server检索记录时工作正常 var _records = from _adUserDatas in _adUserDataDBDataContex.ADUserDatas where _list.Contains(_adUserData
select * from table where id in ("1", "2", "3")
我有这段代码,它在从SQL Server检索记录时工作正常
var _records = from _adUserDatas in _adUserDataDBDataContex.ADUserDatas
where
_list.Contains(_adUserDatas.id)
orderby _adUserDatas.fan
select _adUserDatas;
当我将其更改为使用Microsoft CRM中的contacts实体时,它引发了一个异常,并表示我的where子句无效
有什么办法让它工作吗
谢谢
另外,我发现了这篇文章的讨论,但我在myset.where部分发现了错误。CRM LINQ上下文不支持这一点。请在这里查一下 LINQ运算符:其中 限制:
该子句的左侧必须是属性名,右侧必须是值。不能将左侧设置为常量。子句的两边不能都是常量。
有一种称为。看看它是否对你有帮助
有了,像下面这样的东西应该为你工作
var adUserDatas = _adUserDataDBDataContex.ADUserDatas
string[] _list = new[] { "1", "2", "3" };
string whereClause = String.Empty;
foreach (var id in _list)
{
whereClause += string.Format("_adUserDatas.id = \"{0}\" OR ", id);
}
adUserDatas = adUserDatas.Where(whereClause.Substring(0, whereClause.Length - 4));
var query = from n in adUserDatas
select n;
Ref:当您使用联系人实体时,错误说明了什么?查询表达式在操作符中包含一个
,因此如果您愿意,您可以随时使用它,而不是动态的link@Daryl我认为这是一个很好的选择,谢谢你让我知道。