-
452 votesanswersviews
从lambda表达式中检索属性名称
通过lambda表达式传入时,是否有更好的方法来获取属性名称?这是我现在拥有的 . 例如 . GetSortingInfo<User>(u => u.UserId); 只有当属性是字符串时,它才能将其作为元素表达式进行处理 . 因为并非所有属性都是字符串我必须使用对象,但它会为那些返回一个单一表达式 . public static RouteValueDictionary Ge... -
812 votesanswersviews
为什么要使用Expression <Func <T >>而不是Func <T>?
我理解lambdas以及 Func 和 Action 代表 . 但表达方式让我感到困惑 . 在什么情况下你会使用 Expression<Func<T>> 而不是普通的 Func<T> ? -
2 votesanswersviews
动态构建具有未知类型的LINQ表达式
我想知道是否可以使用此表达式构建器类动态生成lambda表达式,其中在编译时不知道要过滤的类型 . 我有一个构造表达式的方法, public static Expression<Func<T, bool>> GetExpression<T>(IList<QueryFilter> filters) 和一个QueryFilter对象, public c... -
0 votesanswersviews
在非泛型DbSet上应用动态构建的表达式
我有以下场景: 我在编译时有一个未知的DbSet,我通过它的类型得到它: DbSet entities = _repository.Context.Set(myType) 我有一个给定类型的动态构建表达式, Expression myFilter; //构建为 myType 的表达式,在运行时构造 如何在 entities 上应用 myFilter ,以便根据 myFilter 过滤出... -
0 votesanswersviews
Generic Linq IN子查询表达式
我试图找到一种方法来为子查询in子句创建Linq表达式树 . SELECT * FROM x WHERE X.Id IN (SELECT XId FROM Y) 假设我有这个查询,我需要一种方法来创建where子句的System.Linq.Expression . 我有一个针对众多实体的通用存储库基础解决方案,我正在为其他过滤器动态创建表达式树,我想将其添加到已创建的表达式树中 . 我知道我可以... -
6 votesanswersviews
LINQ表达式中不区分大小写的字符串比较
我正在尝试编写一个ExpressionVisitor来包装我的LINQ到对象表达式,以自动使它们的字符串比较不区分大小写,就像它们在LINQ到实体中一样 . 编辑:我确实想要使用ExpressionVisitor,而不是仅仅在创建它时为我的表达式应用一些自定义扩展或其他一些重要原因:传递给我的ExpressionVisitor的表达式是由ASP.Net Web API ODATA层生成的,所以我无... -
0 votesanswersviews
从Expression创建树
如何从System.Linq.Expressions.Expression创建树(图)? 我希望有一个图形(从Expression创建)与结构的节点 MyNode { Expression _internalExpression = ... MyNode Parent {get ...} IEnumerable<MyNode> Children {get ..... -
10 votesanswersviews
表达式列表<Func <T,TProperty >>
我正在寻找一种方法来存储用于订购元素的 Expression<Func<T, TProperty>> 集合,然后针对 IQueryable<T> 对象执行存储列表(底层提供者是实体框架) . 例如,我想做这样的事情( this is pseudo code ): public class Program { public static void Main... -
92 votesanswersviews
Expression.Quote()做了什么,Expression.Constant()不能做什么?
Note: I am aware of the earlier question “What is the purpose of LINQ's Expression.Quote method?” ,但如果你继续阅读,你会看到它没有回答我的问题 . 我明白 Expression.Quote() 的陈述目的是什么 . 但是, Expression.Constant() 可以用于相同的目的(除了已经使用... -
49 votesanswersviews
C#和VB.Net之间的表达式树差异
我有一个处理表达式树的库 . 该库需要与C#和VB.Net一起使用 注意到语言之间关于如何构造表达式树的一些差异 字符串比较() => "a" == "b" 成为 Expression.Equals("a", "b")Function() "a" = "b" 成为 Ex... -
6 votesanswersviews
静态链接和编译Runtime w / compiletoMethod()表达式树
我正在开发一个项目,我们正在使用DLR将Racket语言移植到.NET . 我们构建一个表达式树并调用 CompileToMethod() 方法: 相关的可执行发射代码:(取自How to Save an Expression Tree as the Main Entry Point to a New Executable Disk File?) //Wrap the program into a... -
2 votesanswersviews
CompileToMethod无法编译常量'<some value>'因为它是一个非平凡的值,例如活动对象
我正在尝试使用 Reflection.Emit 创建一个名为 EvaluateOnCondition 的方法 . 我使用 Linq Expressions 生成方法的主体,并且我想使用 LambdaExpression 的 CompileToMethod 方法将表达式的 IL 注入 EvaluateOnCondition ,但是当我执行 CompileToMethod 方法时,我收到以下错误: ... -
0 votesanswersviews
如何使这个查询在LINQ to Entities中工作?
我必须遵循以下代码: private static bool DoesColValueExist<T>(IQueryable dataToSearchIn, string colName, string colValue) { int noOfClients = 1; Type type = typeof(T); if (colValue != "&q... -
49 votesanswersviews
将谓词的表达式树变为目标另一种类型
简介 在我目前正在处理的应用程序中,每个业务对象有两种:“ActiveRecord”类和“DataContract”类 . 例如,会有: namespace ActiveRecord { class Widget { public int Id { get; set; } } } namespace DataContract { class Widget ... -
0 votesanswersviews
为GroupBy密钥选择器创建Linq到EF类型
使用Net 4.5.1 进入一个problem,构造了Queryable,它混合了Enumerable lambda编译,它将数据库中的所有东西都拉到了内存中 . 感谢@Servy的帮助 . 我在使用表达式创建的GroupBy选择器中使用字典作为TKey . 字典显然不能以这种方式使用(参见gist第37行 GetGroupByDictionary 方法) . 尝试使用简单的对象数组并遇到类型转换... -
5 votesanswersviews
使用表达式树的Foreach循环
我已经看到了这个Issue while building dynamic Expression Tree和Expression/Statement trees,因为我是表达树的新手,我仍然在努力去理解如何实现我想要的东西 . 一个人为的目标如下 public class TestObject { public TestObject() { ... -
2 votesanswersviews
如何将Expression <Func <DomainType >>谓词转换为Expression <Func <DTOtype>谓词
一些背景:我在我的应用程序中有多个层,其中两个是域层和基础结构层,用作我的DAL . 在域层中,我实现了一个通用的存储库模式: public interface IRepository<T, in TId> where T : IEntity<TId> { void Insert(T entity); void Delete(T en... -
0 votesanswersviews
表达式树错误为IQueryable但可用作IEnumerable
我第一次使用LINQ查询进入表达式树时遇到了困难 . 这是没有表达式树的查询: IQueryable<SampleResult> samples = samples.Select(a => new { a = a, innerQuery = _dc.RequestedTests .SelectMany( b => _dc.ResultData... -
3 votesanswersviews
如何在表达式树中替换属性类型及其值
我有一个具有Nullable DateTime属性的PersonDTO类: public class PersonDTO { public virtual long Id { get; set; } public virtual string Name { get; set; } // YYYYMMDD format public virtual Nullable&... -
1 votesanswersviews
C#表达式树:将实体参数转换为接口
我正在尝试构建一个流体API,用于通过表达式树在对象上设置属性值 . 而不是这样做: public static class Converters { public static SomeType ToSomeType( this Dictionary<string, string> values, string fieldName ) { //...c... -
117 votesanswersviews
Roslyn语法节点是否重用?
我一直在看Roslyn CTP,虽然它解决了与Expression tree API类似的问题,但两者都是不可改变的,但Roslyn以一种完全不同的方式这样做: Expression 节点没有对父节点的引用,使用 ExpressionVisitor 进行修改,这就是为什么可以重用大部件的原因 . 另一方面,Roslyn的 SyntaxNode 引用了它的父节点,因此所有节点实际上都成为一个无法... -
0 votesanswersviews
仅使用深度优先和/或广度优先遍历将表达式树转换回字符串形式
我正在研究涉及表达树的遗传编程问题 . 我正在使用的树数据结构在深度优先和广度优先遍历方面仅提供访问器 . 我只使用这些提供的方法从树中恢复表达式的有效方法是什么? -
2 votesanswersviews
使用动态构建的Expression过滤非泛型DbSet
Plot: 我有一个实现为Entity Framework DB上下文的外观的类 . 它开发用于保持向后兼容性,它模仿具有相同公共接口的类,但使用DTO而不是EF实体 . Problem: 我在上面描述的类中有下一个方法 . 见下面的代码: public IQueryable<T> FindBy<T>(Expression<Func<T, Boolean>... -
9 votesanswersviews
学习LINQ中的表达式树[关闭]
您可以为LINQ Expression Trees推荐哪些文章/教程? -
27 votesanswersviews
LINQ表达树是否适合树木?
LINQ表达树是否适当的树,如图,(有针对性或没有,维基百科似乎不太一致)没有循环?以下C#表达式中表达式树的根是什么? (string s) => s.Length 表达式树看起来像这样,“ - >”表示可通过其他节点访问的节点的属性名称 . ->Parameters[0] Lambda---------Parameter(string s) \ ... -
67 votesanswersviews
什么是表达树,你如何使用它们,为什么要使用它们?
我刚刚遇到过多次表达树的概念 . 我只想了解表达式树及其用途的含义 . 如果有人能指导我简单的解释和使用样本,我会很高兴 . -
1 votesanswersviews
从对象转换函数表达式树
我最终遇到的情况是函数表达式树 Expression<Func<TClass, TProperty>> 被分配给object类型的全局变量,然后在代码中我需要用表达式调用不同的方法 . 我无法改变全局对象类型;它必须是对象 . 尝试使用全局对象调用第二个方法时,代码将无法编译,除非我将对象转换为 Expression<Func<TClass, TProperty... -
4 votesanswersviews
DynamicMethods,Expression Trees和DLR
我对DynamicMethods,Expression Trees和DLR之间的交互和关系有一些疑问 . 我知道LambdaExpression.Compile在内部使用ILGenerator来创建一个Delegate . 但是,编译的LambdaExpression和DynamicMethod之间存在一些根本区别 . 例如 一个 . DynamicMethods调用更快 湾编译的Lambd... -
2 votesanswersviews
如何从C#中的字符串创建基于动态lambda的Linq表达式?
我在从字符串创建基于Lambda的Linq表达式时遇到一些困难 . 以下是使用此示例对象/类的基本情况: public class MockClass { public string CreateBy { get; set; } } 基本上我需要转换这样的字符串: string stringToConvert = “x => x.CreateBy.Equals(filter.Val... -
6 votesanswersviews
像Expression Tree中的运算符一样
我有一个Linq扩展方法来使用字符串值动态过滤Linq查询 . 例如: query.WhereHelper("columName", ">", 1) . 我可以使用许多不同的过滤器运算符,如GreaterThan或NotEqual等,但不能"Like" . 没有Expression.Like或Expression.StartsWi...