Я использую библиотеку Mono.CSharp для передачи кода. После еще одного вопроса о SO (/2427672/mono-kompilyator-kak-usluga-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 из строки запроса.