Я пытаюсь создать выражение linq в ядре asp.net для MongoDB, используя MongoDriver, и я могу " t получить доступ к времени выполнения диктатора с помощью генератора выражений. Заранее спасибо!Я не могу получить доступ к значениям Dictonary <string, object> при построении динамического выражения linq
private Expression<Func<Dictionary<string, object>, bool>> GenerateWhereExpression(Dictionary<string, object> filterParams)
{
var pe = Expression.Parameter(typeof(Dictionary<string, object>), "x");
var dictPropery = Expression.PropertyOrField(pe, "name"); // Dictonary value with respect to the name key
var methodCall = Expression.Call(dictPropery, typeof(string).GetMethod("Contains"), Expression.Constant(filterParams["name"], typeof(string)));
var lambda = Expression.Lambda<Func<Dictionary<string, object>, bool>>(methodCall, pe);
return lambda;
}
То, что я пытаюсь выполнить, - это предложение where, чтобы получить все данные для отчета.
Expresssiom, которые должны быть созданы в результате метода должен выглядеть следующим образом:
x => ((string)x["name"]).Contains(term)
Ваш '.Call' использует' MethodInfo' из 'string'. –
напишите простой код C#, который вы хотите сгенерировать как 'x.Keys [0] .Contains (" a ")' – Rafal
Не могли бы вы объяснить, чего вы хотите достичь? Я этого не понимаю, и я не понимаю, как его можно использовать для запроса mongodb –