2011-03-05 11 views
10

Bildiğim kadarıyla, QueryOver API, ad ile bir takma başvuruda bulunmanıza izin vermez, ancak yazdığınız bir nesneyi kullanırsınız. Takma ismimi hedefleyen bir kısıtlamayı nasıl ekleyebilirim?QueryOver API ile bir diğer ad kısıtlamayı nasıl hedeflerim?

var query = session.QueryOver<Person>().JoinQueryOver(x => x.Dogs,() => dogAlias); 

return query.Where(Restrictions.Disjunction() 
         .Add(Restrictions.Like("Name", searchQuery, MatchMode.Anywhere)) 
         .Add(Restrictions.Like("dogAlias.Name", searchQuery, MatchMode.Anywhere))); 

cevap

11

yerine:

Restrictions.Like("dogAlias.Name", searchQuery, MatchMode.Anywhere) 

kullanım:

Restrictions.On(() => dogAlias.Name).IsLike(searchQuery, MatchMode.Anywhere) 

Yani, tam sorgu olur

Örneğin, şuna benzer bir şey başarmak istiyorum olur:

var query = session.QueryOver<Person>() 
      .JoinQueryOver(x => x.Dogs,() => dogAlias); 

return query.Where(Restrictions.Disjunction() 
       .Add(Restrictions.On<Person>(p => p.Name).IsLike(searchQuery, MatchMode.Anywhere)) 
       .Add(Restrictions.On(() => dogAlias.Name).IsLike(searchQuery, MatchMode.Anywhere))); 
İlgili konular