Composing and executing a customer search
Not sure if you know how dangerous omitting braces for if statements can be. Do you know what happens here :

if(!string.NullOrEmpty(searchData.StreetName)
    query.Include(c =&gt; c.Address);
    query.Where(c =&gt; c.Address.StreetName == searchData.StreetName);


no matter wether searchData.StreetName is null or not the query.Where(c =&gt; c.Address.StreetName == searchData.StreetName); will be executed nevertheless. I assume from the way you have formatted the code that you assume this will be only executed if the condition is true.  

I would like to encourage you to always use braces {} although they might be optional. This helps you to structure your code which helps to make it more readable and by using them you make your code less error prone.