У меня есть запрос, который работает при использовании любого построителя запросов CAML, когда он используется в C# для веб-части SharePoint, он всегда не возвращает никаких результатов.Запрос SharePoint CAML работает в построителе, но не в коде
using (SPWeb ThisWeb = ThisSite.OpenWeb())
{
IList<Tweet> Tweets = GetTweets(item["Mode"].ToString(), item["String"].ToString(), LastTweet, ThisSite);
SPList ThisList = ThisWeb.Lists.TryGetList(Variables.TwitterTweetList);
foreach (var tweet in Tweets)
{
SPListItemCollection itms = ThisList.GetItems(new SPQuery() { Query = @"<Where>" +
"<Eq>" +
"<FieldRef Name=""Title"" />" +
"<Value type=""Text"">" + tweet.tweetID.ToString() + "</Value>" +
"</Eq>" +
"</Where>"
});
if (itms.Count == 0)
{
// add the tweet to 'ThisList'
}
}
}
Вхождение в коде, вы увидите tweet.tweetID.ToString() является "337958304577892353"
При выполнении этого кода, он вернется ZERO пунктов.
При выполнении запроса в сборщике U2U или любом другом запросе CAML он возвращает 1 (2, 3, 4 и т. Д., Если код запускается более одного раза).
Запрос побежал в u2u строитель:
<Query>
<Where>
<Eq>
<FieldRef Name="Title" />
<Value type="Text">"337958304577892353"</Value>
</Eq>
</Where>
</Query>
(Да, при выполнении CAML в SharePoint, вы уронили теги ... У меня есть 3 другие вопросы, которые работают очень хорошо .. это только этот один.)
Единственное различие, которое я вижу между вашим кодом и запросом U2U, заключается в том, что у вас есть идентификатор твита внутри кавычек в запросе U2U. Это не имеет значения, но, возможно, стоит попробовать. – Robbert