У меня есть объект person, который может иметь неограниченное количество имен. Так что первые имена - это еще один объект.
е
человек --- имя
--- имя
--- имя
То, что я хочу сделать, это написать запрос nhiberate, с помощью которого я получу человека с определенными именами.
поэтому одним запросом может быть поиск кого-то, чьи имена - Элисон, Джейн и Филиппа, тогда следующим запросом может быть поиск кого-то, чьи имена - Элисон и Джейн.
Я только хочу вернуть людей, у которых есть все имена, по которым я ищу. Пока у меня есть
ICriteria criteria = session.CreateCriteria(typeof (Person));
criteria.CreateAlias("Names", "name");
ICriterion expression = null;
foreach (string name in namesToFind)
{
if (expression == null)
{
expression = Expression.Like("name.Value", "%" + name + "%");
}
else
{
expression = Expression.Or(
expression,
Expression.Like("name.Value", "%" + name + "%"));
}
}
if (expression != null)
criteria.Add(expression);
Но это возвращает всех, у кого ЛЮБОЕ из имен, которые я ищу, а не ВСЕ имена.
Может кто-нибудь помочь мне с этим? Спасибо!