文字列から Lambda ベースの Linq 式を作成するのに苦労しています。このサンプルオブジェクト/クラスを使用した私の基本的なケースは次のとおりです。
public class MockClass
{
public string CreateBy { get; set; }
}
基本的に、次のように文字列を変換する必要があります。
string stringToConvert = “x => x.CreateBy.Equals(filter.Value, StringComparison.OrdinalIgnoreCase”;
to predicate/linq 式に:
System.Linq.Expressions.Expression<Func<T, bool>> or in this example
System.Linq.Expressions.Expression<Func<MockClass, bool>>
したがって、以下の Where メソッド内の Linq 式と同等です。
query = query.Where(x => x.CreateBy.Equals(filter.Value,
StringComparison.OrdinalIgnoreCase));
次のヘルパーを使用してみましたが、事前にわからない文字列からlinq式を構築できるようにしたいこのタイプのケースでそれらを機能させる方法を理解できないようです: http: //www.albahari.com/nutshell/predicatebuilder.aspx
http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx (NuGet パッケージとして利用できるようになりました。よく「DynamicQuery」と呼ばれます)