/// <summary> /// 지정한 속성 값이 NULL이면 True로 간주하는 Where 절을 추가한다. /// PropertyName 를 조회할 때, 명확히 PropertyName=False가 아니라 NULL이거나, True라면 True로 간주한다. /// </summary> /// <param name="dc">criteria</param> /// <param name="propertyName">property name</param> /// <param name="value">property value to filter</param> /// <returns>criteria</returns> public static DetachedCriteria AddNullAsTrue(this DetachedCriteria dc, string propertyName, bool?value) { if (value.GetValueOrDefault(true) == false) { return(dc.AddEq(propertyName, false)); } return(dc.AddEqIncludeNull(propertyName, true)); }
/// <summary> /// 지정한 속성 값이 NULL이면 True로 간주하는 Where 절을 추가한다. (IsEnabled 를 조회할 때, 명확히 IsEnabled=False가 아니라면 NULL이거나, True라면 True로 간주한다. /// </summary> /// <param name="criteria"></param> /// <param name="propertyName"></param> /// <param name="value"></param> /// <returns></returns> public static DetachedCriteria NullAsTrue(this DetachedCriteria criteria, string propertyName, bool?value) { if (IsDebugEnabled) { log.Debug("지정한 속성 값이 NULL이면 True로 간주하는 Eq 절을 빌드한다... propertyName=[{0}], value=[{1}]", propertyName, value); } return(value.GetValueOrDefault(true) ? criteria.AddEqIncludeNull(propertyName, value) : criteria.AddEq(propertyName, value)); }