Я играю с базовой реализацией «шаблона» Query Object (в кавычках, поскольку это реализация шаблона интерпретатора), и я думал об усовершенствовании, которое я не знаю, как реализовать.
Как вы знаете, объект Criterion будет выглядеть примерно так:
public class Criterion
{
...
string FieldName { get; set; }
string Value { get; set; }
....
}
Что мне не нравится, так это то, что мне нужно добавить в поле строку, поэтому я подумал, могу ли я создать какой-то общий класс Criterion, чтобы я мог использовать его следующим образом:
var criterion = new Criterion<Person>();
criterion.Field = c => c.FirstName;
criterion.Value = "John";
или что-то в этом роде.
Конечно, есть также часть, где критерии должны быть преобразованы в SQL, чтобы я мог сделать что-то вроде:
string query = "SELECT * FROM Person WHERE " + criteria.Field.ToString() + " = '" + criteria.Value + "'"
Я уверен, что должен быть способ сделать это, но я просто не могу обернуться вокруг него.
Спасибо за вашу помощь.