I have these classes:

```
public class Employee
{
    public virtual int Id { get; set; }
    public virtual decimal Salary { get; set; }
    public virtual decimal Tax { get; set; }
    public virtual decimal NetSalary { get { return Salary * (1 - Tax); } }
}

public class EmployeeMap : ClassMap<Employee>
{
    WithTable("Employees");
    Id(x => x.Id);
    Map(x => x.Salary);
    Map(x => x.Tax);
}

```

And I'm retrieving the employees form the database like this:

```
var criteria = DetachedCriteria.For<Employee>();
criteria = criteria.AddOrder(Order.Asc(sortProperty)); // sortProperty is a string

```

Now this works well if I want to sort by `Salary`, but I would like to sort by `NetSalary`. How would I achieve that? I can't change the database. I found that there's an overload of `Order.Asc()` that takes in a projection. I'm sure that I have to create a projection in that criteria and feed it there, but I have found no info on how to do it.