오늘 우리의 레거시 데이터베이스에서 필드가 이 아니어야이 비어 있어야하는 상황이 발생했습니다 ... 비어있었습니다.NHibernate Queryover where 절에서 String.IsNullOrEmpty() 테스트를 수행하려면 어떻게해야합니까?
이 데이터베이스에 대해 NHibernate 3.2를 사용 중이며 영향을받는 쿼리는 QueryOver로 작성됩니다. 나는이 때
return Session
.QueryOver<FacilityGroup>()
.Where(fg => fg.Owner.Id == Token.OwnerId &&
fg.UserName == Token.UserName &&
!string.IsNullOrEmpty(fg.Code))
.OrderBy(fg => fg.Code).Asc
.TransformUsing(Transformers.DistinctRootEntity);
나는 예외가 "인식 할 수없는 메서드 호출 : 선택 System.String : 부울 IsNullOrEmpty (
나의 현재 쿼리는 내가이되고 싶어이
return Session
.QueryOver<FacilityGroup>()
.Where(fg => fg.Owner.Id == Token.OwnerId &&
fg.UserName == Token.UserName)
.OrderBy(fg => fg.Code).Asc
.TransformUsing(Transformers.DistinctRootEntity);
입니다 System.String) "
그래서 NHibernate는 string.IsNullOrEmpty를 변환 할 수 없습니다. 공정하다. 그러나 내가하려고 할 때 내가
어떤 생각 " 'Domain.Entities.FacilityGroup' ''범위에서 참조하지만 정의되지 않은 유형의 변수 'FG'"InvalidOperationException이 얻을이
return Session
.QueryOver<FacilityGroup>()
.Where(fg => fg.Owner.Id == Token.OwnerId &&
fg.UserName == Token.UserName &&
!(fg.Code == null || fg.Code.Trim() == ""))
.OrderBy(fg => fg.Code).Asc
.TransformUsing(Transformers.DistinctRootEntity);
?
에? – Rippo
트림없이() 작동 ... – NYCChris