質問: p => p.Price > 1000; // Function that should take that criteria and convert to SQL statement static IEnumerable GetCustomers (Expression> criteria) { // ... } ``` この関数の中で、私はLinq-To-SQLを使ってSQL文に条件を変換したいと思います。 `DataContext.Log`を使用して実行されたクエリを確認し、 `DataContext.GetCommand(query).CommandText`を使用して実行前の完全なクエリを確認することができます。しかし、私は表現全体の一部だけを生成したいと思います。 私が達成しようとしているのは、私のリポジトリを基礎となるテクノロジー(Linq-to-SQL、Dapperなど)に抽象化することです。そうすれば、式をリポジトリに渡し、適切なステートメントを生成し、適切なテクノロジを使用して実行することができます。
回答: 次のようなことができます: ``` string sql = DataContext.GetTable().Where(criteria).ToString(); ``` ToString()はSQL式を提供します。その後、正規表現を使用してWHERE句を引き出すことができます。