how am i able to join/add SubQuery to a criteria ? what I wanted to do is able to make a SubQuery that will search String Product which is getCustomerProduct (two table joins). and I also want it able to do a soundex search. my problem is, I am not sure if my subquery is right or not unless i run it, how can i add it to the criteria ? I am new to nhiberate, thanks for help !
public IPagedList<Customer> GetSearchPagedCustomer(string product, string address, string county, int pagenumber, int pageSize)
{
ICriteria criteria = Session.CreateCriteria<Customer>();
//.CreateAlias("Products", "cp")
//.CreateAlias("cp.Product", "p");
if (!string.IsNullOrEmpty(product))
{
var getCustomerProduct = DetachedCriteria.For<Product>()
.SetProjection(Projections.Distinct(Projections.Property("Products.id")))
.CreateCriteria("Product", JoinType.InnerJoin)
.Add(Restrictions.Eq("Product.Name",product));
//criteria.Add(Restrictions.Like("Name", product));
}
if (!string.IsNullOrEmpty(address))
{
criteria.Add(Restrictions.Like("Address1", address, MatchMode.Anywhere) || Restrictions.Like("Address2", address, MatchMode.Anywhere) || Restrictions.Like("Address3", address, MatchMode.Anywhere));
}
if (!string.IsNullOrEmpty(county))
{
criteria.Add(Restrictions.Like("County", county, MatchMode.Anywhere));
}
return criteria.Future<Customer>().ToPagedList<Customer>(pageNumber, pageSize);
}