O operador em questão é o operador In que evita que tenhamos de escrever múltiplos Or.
Por exemplo, se tivermos o campo chamado Browser do tipo Text e quisermos procurar os registos que têm a palavra Firefox ou a palavra Chrome escrevemos a seguinte Caml query.
<Where>
<In>
<FieldRef Name='Browser' />
<Values>
<Value Type='Text'>Firefox</Value>
<Value Type='Text'>Chrome</Value>
</Values>
</In>
</Where>
public static string InCaml(IEnumerable<string> items, string
type, string name)
{
string inFormat = "<Value Type='{0}'>{1}</Value>";
var values = new StringBuilder();
values.Append("<Values>" );
foreach (string item in items)
{
values.AppendFormat(inFormat, type, item);
}
values.Append("</Values>");
var fieldRef = string.Format("<FieldRef Name='{0}' />" , name);
return string.Format("<In>{0}{1}</In> ", fieldRef,
values.ToString());
}
InCaml(new string[] { "Firefox", "Chrome" }, "Text", "Browser");
Sem comentários:
Enviar um comentário