Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NHibernate:带组件的Or子句_C#_Nhibernate - Fatal编程技术网

C# NHibernate:带组件的Or子句

C# NHibernate:带组件的Or子句,c#,nhibernate,C#,Nhibernate,我有两门课: 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或地址,街道等于Xyz 这种方法是一种结合: ICriter

我有两门课:

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或地址,街道等于Xyz

这种方法是一种结合:

ICriteria criteria = session.CreateCriteria(typeof(Person));
criteria.Add(Expression.Eq("Name", "Xyz"))
.CreateCriteria("Address").Add(Expression.Eq("Street", "Xyz"));
我想要的是and或子句

多谢各位!
Andy

我一直使用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");

完美的非常感谢你。没错,这些HQL查询要简单得多:-