1
lstReport=lstReport.Where(o=>DateTime.Parse(o.Field)==DateTime.Parse(o.FieldValue));
//I am creating above statement dynamically like this
var variable = Expression.Variable(typeof(Report));
foreach (SQWFilterConstraint oFC in oFilter.LstFilterConstraint) //using this collection I am making dynamic query
{
Expression ExprLeft =Expression.Property(variable, oFC.Field);
MethodInfo methodDateTimeParse = typeof(DateTime).GetMethod("Parse", newType[] { typeof(string) });
var methodParam = Expression.Parameter(typeof(string), oFC.FieldValue);
Expression exprRight = Expression.Call(methodDateTimeParse, methodParam); //This is working fine for right side
}
var props = new[] { variable };
var lambda = Expression.Lambda<Func<Report, bool>>(ExprPrev, props).Compile();
ReportList = ReportList.Where(lambda).ToList();
だから私は(演算子の左側の上に下線や太字れる)左側に来ても、フィールド上のDateTime.Parse
方法式ツリーの作成中にDateTime.Parse()メソッドを両側(つまり、式左と式右)で使用する方法はありますか?
右サイドで既に行っているのとまったく同じことをやってみませんか? – svick
私は試みましたが、それは動作しません。なぜなら、私はどのようにパラメータを供給するのをやめますか?methodParam = Expression.Parameter(typeof(string)、oFC.FieldName); //この関数は、 –