如果我有一个模型对象,是否Expression<Func<TModel, bool>>()可以创建哪些可以在不同的htmlHelper中使用(例如in CheckBoxFor())
this HtmlHelper<TModel> htmlHelper
Run Code Online (Sandbox Code Playgroud)
和财产的名称(通过反思).
我有一个场景,我从客户端网格的配置动态创建 WHERE 子句。客户端向服务器发送一些 json,然后我将其解析并随后转换为表达式,以便它可以作为 where 子句传递到存储库中。
目前,我正在努力为复杂的属性类型创建表达式,如下所示:
public partial class Resource
{
public string DisplayName { get; set; }
public virtual ResourceType ResourceType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
下面将转换为表达式的代码适用于像 Displayname 属性这样的简单类型。表达式将类似于:
x => x.DisplayName == "ValueEnteredByUserInTheUI"
Run Code Online (Sandbox Code Playgroud)
但是,当在网格中为 ResourceType 属性输入值时,表达式最终将类似于:
x => x.ResourceType == "ValueEnteredByUserInTheUI"
Run Code Online (Sandbox Code Playgroud)
我错过了一个步骤来转换成这个:
x => x.ResourceType.Name == "ValueEnteredByuserInTheUI"
Run Code Online (Sandbox Code Playgroud)
任何人都可以在这里指出正确的方向吗?
public Expression<Func<T, bool>> GetExpression<TEntity>(string field, string operation, object value, string ignoreCase)
{
Expression<Func<T, bool>> whereClause = default(Expression<Func<T, bool>>);
// Define lambda
ParameterExpression param = Expression.Parameter(typeof(T), "x");
MemberExpression member = …Run Code Online (Sandbox Code Playgroud)