相关疑难解决方法(0)

如何创建Expression <Func <TModel,TProperty >>;

如果我有一个模型对象,是否Expression<Func<TModel, bool>>()可以创建哪些可以在不同的htmlHelper中使用(例如in CheckBoxFor())

this HtmlHelper<TModel> htmlHelper
Run Code Online (Sandbox Code Playgroud)

和财产的名称(通过反思).

c# asp.net-mvc html-helper

5
推荐指数
1
解决办法
3557
查看次数

复杂类型属性的表达式

我有一个场景,我从客户端网格的配置动态创建 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)

c# lambda expression navigation-properties

1
推荐指数
1
解决办法
1294
查看次数