我有两个班级:
public class Person{
public virtual string Name { get; set;}
public virtual Address Address { get; set; }
}
public class Address{
public virtual string Street { get; set; }
}
现在我希望NHibernate给我所有姓名等于“Xyz”或Address.Street等于“Xyz”的人。
这种方法是和 - 结合:
ICriteria criteria = session.CreateCriteria(typeof(Person));
criteria.Add(Expression.Eq("Name", "Xyz"))
.CreateCriteria("Address").Add(Expression.Eq("Street", "Xyz"));
我想要的是和or-clause。
非常感谢! 安迪
答案 0 :(得分:0)
我一直只是使用HQL查询 - 更容易编写和读取(至少如果你已经习惯了SQL。它是这样的:
IQuery query = session.CreateQuery("FROM Person p WHERE p.Name = :Name OR p.Address.Street = :Street");
query.SetParameter("Name", "Xyz");
query.SetParameter("Street", "Xyz");