Внедрение переменной в Mono.CSharp.Evaluator (среда выполнения, компилирующая запрос LINQ из строки)

Я использую библиотеку Mono.CSharp для передачи кода. После еще одного вопроса по SO (http://stackoverflow.com/questions/3407318/mono-compiler-as-a-service-mcs) мне удалось получить правильную оценку Mono.CSharp в Microsoft CLR.

Чтобы добавить гибкости в мое приложение, я хотел бы иметь возможность настраивать запрос во время выполнения, позволяя пользователю предоставлять запрос LINQ в виде строки, которая анализируется и попадает в базу данных при выполнении.

Учитывая этот основной фрагмент кода:

IQueryable<Contact> contacts = GetContacts();
string query = "from contact in contacts
                where contact.Name == \"name\"
                select contact";
var queryableResult = Mono.CSharp.Evaluator.Evaluate(query);

Как я могу «вставить» переменную контактов в Mono.CSharp.Evaluator, который будет оцениваться как часть запроса? Я иду об этом правильным путем? В конце мне нужно либо полученное выражение, либо IQueryable из строки запроса.

Ответы на вопрос(2)

Ваш ответ на вопрос