クエリ オブジェクトの「パターン」の基本的な実装 (これはインタープリター パターンの実装であるため、引用符で囲んでいます) で遊んでいますが、実装方法がわからない拡張機能を考えていました。
ご存じのとおり、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 + "'"
これを行う方法があるに違いないと確信していますが、頭を包むことはできません。
ご協力いただきありがとうございます。