我有一个人对象,它可以有无限数量的名字。所以名字是另一个对象。
IE
人---姓名
---姓名
---姓名
我想做的是编写一个 nhiberate 查询,使用它可以让我得到一个有特定名字的人。
因此,一个查询可能是查找姓名为 alison 和 jane 和 philippa 的人,然后下一个查询可能是查找姓名为 alison 和 jane 的人。
我只想返回具有我正在搜索的所有名称的人。到目前为止我有
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);
但这会返回每个人,其中包含我正在搜索的任何名称,而不是所有名称。
谁能帮我解决这个问题?谢谢!