C#表达式比较像LINQtoSQL这样的值

时间:2015-02-28 16:52:29

标签: c# linq-to-sql lambda

我不能在我的项目中使用LinqToSql,所以我正在实现类似的东西。我有一个对象需要比较值:

obj.Where(w=> w.Name == "NAME"); 

方法如下所示:

Where(Expression<Func<T, bool>> expression)

我已经知道如何获取属性名称,但我需要从表达式中获取以下信息:

  1. 表达式中使用的运算符(==,&gt; =,&lt; =)
  2. 我正在比较原始值
  3. 的值

    所以最后我可以构建一个SQL select查询。

    示例

    obj.Where(w=> w.Name == "NAME"); 
    

    返回

    WHERE Name = 'NAME' 
    

    感谢您的帮助, B.

1 个答案:

答案 0 :(得分:0)

您可以遍历表达式树,例如使用visitor中的this example。但在开发自定义SQL查询生成器之前,我绝对考虑使用现有的查询生成器 - 任务非常复杂。例如Entity Framework