【发布时间】:2010-05-16 19:51:31
【问题描述】:
我有一个 person 对象,它可以有无限个名字。所以名字是另一个对象。
即
人---姓名
--- 名称
--- 名称
我想做的是编写一个 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);
但这会返回每个人的任何名字,而不是所有名字。
谁能帮我解决这个问题?谢谢!
【问题讨论】:
标签: nhibernate icriteria