2011-03-17 2 views
4

Firstname 및 Surname 속성이있는 Nhibernate 객체가 있는데 두 필드 (Firstname + ""+ 성)에서 질의 할 수 있습니다. 예 : 검색 용어가 "John Doe"인 경우, John과 Doe가 별도의 필드에있을 때 일치합니다.두 필드에 대한 NHibernate Expression.Like 기준

어떻게하면됩니까? 감사합니다. LINQ를 사용하여 예를 들어

답변

0
string firstName = "John"; 
string lastName = "Doe"; 

: 나는 질문의 요점을 놓친 :

Session.QueryOver<User>() 
     .Where(u => u.FirstName == firstName || u.Surname == lastName) 
     .List(); 

UPDATE :

Session.Query<User>() 
     .Where(u => u.FirstName == firstName || u.Surname == lastName) 
     .ToList(); 

거의 같은 모양 QueryOver, 함께 할 수

. 이것에 대해

무엇을 : 나는 그것을 필요로 작동하는 것 같다

.Add(Restrictions.Like(Projections.SqlFunction("concat", 
     NHibernateUtil.String, 
     Projections.Property("Firstname"), 
     Projections.Constant(" "), 
     Projections.Property("Surname")), 
    searchString, MatchMode.Anywhere)) 

:

var name = "John Doe"; 
Session.Query<User>() 
     .Where(u => name.Contains(u.FirstName) || name.Contains(u.Surname)) 
     .ToList(); 
+0

그건 내가 뭘 찾고 있는거야, 입력 검색 문자열 "존 Doe"한 용어로, 그래서 그것은 조인 된 필드에 대해 일치해야합니다. 감사. – RSlaughter

+0

미안합니다 :). 내 응답에 대한 업데이트를 추가했습니다. – psousa

+0

아마도 문자열을 .split하고 부품으로 검색하는 것이 좋습니다. – 4imble