В настоящее время я делаю что-то подобное и очень доволен результатом. Я сделал это с помощью Entity Framework и метода ObjectQuery.Select (строковый запрос, ObjectParameters [] params). Больше информации здесь: http://msdn.microsoft.com/en-us/library/bb298787.aspx#Y586.
Вы не будете делать выражения из строки, но будете использовать SQL для сущностей, который очень хорошо работает и сделан именно для этой цели, поскольку динамическое создание Expression не тривиально и на самом деле медленнее.
Приветствия