I am trying to set a parameter for a Query inside a MultiQuery:
var multiQuery = SessionHolder.Current.CreateMultiQuery();
foreach (string name in names)
{
var query = SessionHolder.Current
.CreateQuery("select c.Name, c.Surname " +
"from Person as p " +
"where p.Name = :name or " +
"p.Name like ':name/%'")
.SetParameter("name", name);
multiQuery = multiQuery.Add(query);
}
var multiQueryResult = multiQuery.List();
and getting this exception:
QueryException was unhandled by user code
The named parameter code was used in more than one query. Either give unique names to your parameters, or use the multi query SetParameter() methods to set the named parameter
How can I use the multi query SetParameter() methods to set the named parameter so the example works as intended?
Thanks for replies!
Maybe is not too clean but did u think to use an unique id for the parameter?
int i = 0;
foreach (string name in names)
{
string paramname = "name" + (++i).ToString();
var query = SessionHolder.Current
.CreateQuery("select c.Name, c.Surname " +
"from Person as p " +
"where p.Name = :" + paramname + " or " +
"p.Name like ':" + paramname + "/%'")
.SetParameter(paramname, name);
multiQuery = multiQuery.Add(query);
}