public static DetachedCriteria Join(this DetachedCriteria criteria, Expression<Func<object>> alias, JoinType joinType) { var aliasContainer = Alias.Convert(alias); return criteria.CreateAlias(aliasContainer.AliasPath, aliasContainer.AliasName, joinType); }