How to extend existing KeySelector
<pre><code>public class Address 
{
    public string City { get; set; }
    public string Street { get; set; }
}

public class User 
{
    public Address Address1 { get; set; }
    public Address Address2 { get; set; }
}

public class DefaultAddressSortingSpecification&lt;TEntity&gt;
{
    private readonly Expression&lt;Func&lt;TEntity, Address&gt;&gt; _keySelector;

    public DefaultAddressSortingSpecification(Expression&lt;Func&lt;TEntity, Address&gt;&gt; keySelector)
    {
        _keySelector = keySelector;
    }

    public IQueryable&lt;TEntity&gt; OrderingEntitiesFrom(IQueryable&lt;TEntity&gt; query)
    {
        //order by city
        //order by street
    }
}

usage: 

var s1 = new DefaultAddressSortingSpecification&lt;User&gt;(user =&gt; user.Address1);
var s2 = new DefaultAddressSortingSpecification&lt;User&gt;(user =&gt; user.Address2);
</code></pre>

<p>I would like to have universal AddressSortingSpecification. _keySelector points to Address entity. How to add City or Street to it?</p>

<p>Normally I can write something like this: user.Address1.City</p>