0
내 메서드 호출에서 매개 변수를 전달하려면 (부울 값으로 설정 한 경우) 상태 저장 세션을 반환하십시오.내 메서드에서 매개 변수를 전달하여 상태 비 저장 세션을 사용하여 반환하는 방법은 무엇입니까? 코드 복사 최소화
나는 QueryOver 코드를 복제하지 않으, 그것을 좋아해야 할 수있는 방법이있다 :
public virtual IList<User> GetAllUsers(bool isStateless)
{
var query = QueryOver<User>().Where(x => x.UserType == 1).ToList();
if(isStateless)
return NHibernateHelper.Session(query);
else
return NHibernateHelper.StatelessSession(query);
}
나는 위의 작동하지 않습니다 알고,하지만 나는 내가 후에 오전 분명한 희망 .
내가 아는 유일한 방법은 기본적으로 전체 쿼리 오버 코드를 복제하는 것이며, 코드 블록간에 유일한 차이점은 사용할 것입니다. Session
이고 다른 하나가 사용됩니다. StatelessSession
.
깨끗한 방법이 있습니다.
GetExecutableQueryOver? – codecompleting
'Session.QueryOveryUser>()'대신'QueryOver.Of()'을 사용하셨습니까? –
Firo
예,'NHibernate.Criterion.QueryOver.Of();'을 사용해야합니다. –
Alex