我正在玩查询对象“模式”的基本实现(在引号中,因为这是解释器模式的实现),并且我正在考虑一种我不知道如何实现的增强功能。
如您所知,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 + "'"
我确信必须有一种方法可以做到这一点,但我就是无法理解它。
谢谢你的帮助。