Woops... I tried just tried your suggestion and (A) it did not compile and (B) when I got it to compile, I got the exception "subcriteria cannot be ordered". So it looks like your idea actually doesn't work. By the way, I had to change it to look like this:
Code:
session.CreateCriteria(typeof(Foo))
.CreateCriteria("Bar")
.AddOrder(Order.Asc("BarName"))
.List();
There isn't any way to pass a type into the second CreateCriteria call. You have to pass the "AssociationPath", which apparently is the name of the parameter referencing through the join.
In any case, I got the exception about subcriteria cannot be ordered. So I'm back to square one.