0

クエリ オブジェクトの「パターン」の基本的な実装 (これはインタープリター パターンの実装であるため、引用符で囲んでいます) で遊んでいますが、実装方法がわからない拡張機能を考えていました。

ご存じのとおり、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 + "'"

これを行う方法があるに違いないと確信していますが、頭を包むことはできません。

ご協力いただきありがとうございます。

4

1 に答える 1

0

Expressions を使用すると、これを非常に簡単に行うことができます。この記事には例があります-ラムダ式を使用してプロパティ名とタイプを取得します

于 2012-03-26T21:40:36.153 に答える