C# 编写CAML查询以查询具有托管元数据列的SPList
我有一个带有托管元数据列的SPList,下面是我的caml查询C# 编写CAML查询以查询具有托管元数据列的SPList,c#,sharepoint-2010,caml,C#,Sharepoint 2010,Caml,我有一个带有托管元数据列的SPList,下面是我的caml查询 /// This caml query doesn't work SPQuery oQuery = new SPQuery(); string strQuery = @"<Query><Where><In><FieldRef LookupId=""TRUE"" Name=""TaxonomyColumn"" /><Values><Value Type=""Text""
/// This caml query doesn't work
SPQuery oQuery = new SPQuery();
string strQuery = @"<Query><Where><In><FieldRef LookupId=""TRUE"" Name=""TaxonomyColumn"" /><Values><Value Type=""Text"">7392ec1d-3f35-4c5b-b6ad-f80ff15ed718</Value></Values></In></Where></Query>";
oQuery.Query = strQuery;
/// This linq query works exactly fine
var itms = (from SPListItem itm in oList.Items
where itm["TaxonomyColumn"].ToString().Contains("7392ec1d-3f35-4c5b-b6ad-f80ff15ed718")
select itm).ToList();
///此caml查询不起作用
SPQuery oQuery=新建SPQuery();
字符串strQuery=@“7392ec1d-3f35-4c5b-b6ad-f80ff15ed718”;
Query=strQuery;
///这个linq查询工作得非常好
var itms=(来自oList.Items中的SPListItem itm
其中itm[“分类列”].ToString()包含(“7392ec1d-3f35-4c5b-b6ad-f80ff15ed718”)
选择itm.ToList();
我的问题是,出于某种原因,我需要使用CAML查询,而我无法找到一种方法来组合CAML查询,以便查询列为托管元数据列的列表
请帮帮我。谢谢。SPQuery添加查询标记本身:
SPQuery oQuery = new SPQuery();
string strQuery = @"<Query><Where><Contains><FieldRef Name='TaxonomyColumn' /><Value Type='Text'>7392ec1d-3f35-4c5b-b6ad-f80ff15ed718</Value></Contains></Where></Query>";
oQuery.Query = strQuery;
SPQuery oQuery=new SPQuery();
字符串strQuery=@“7392ec1d-3f35-4c5b-b6ad-f80ff15ed718”;
Query=strQuery;
如果不使用GUID,则需要使用查找id。您可以使用TaxonomyField.GetWssIdsOfKeywordTerm()查找此id,并按如下方式编写CAML:
<Query>
<Where>
<In>
<FieldRef LookupId="TRUE" Name="ItemType" />
<Values>
<Value Type="Integer">14</Value>
<Value Type="Integer">15</Value>
</Values>
</In>
</Where>
</Query>
14
15
当存在多个值而不是多个Eq/Or语句时,“In”是一种方便
详细说明如下:
在我发布这个问题之前,我已经试过了,但100%都不起作用。看来这对我来说是世界末日。哈哈哈,结尾标签不见了。即使是微软的例子也缺少这些标签,每个人都会复制和粘贴它,就像它工作一样(人们甚至接受它作为工作答案,这更令人困惑)。如果没有这些结束标记,我会得到预期的运行时错误,即这些结束标记丢失。