【问题标题】:C# Expression to compare values like LINQtoSQL用于比较 LINQtoSQL 等值的 C# 表达式
【发布时间】:2015-02-28 16:52:29
【问题描述】:

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

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

方法Where看起来像这样:

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

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

  1. 表达式中使用的运算符(==、>=、
  2. 与原始值进行比较的值

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

示例

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

返回

WHERE Name = 'NAME' 

感谢您的帮助, B.

【问题讨论】:

    标签: c# linq-to-sql lambda


    【解决方案1】:

    您可以遍历表达式树,例如使用visitor,如this example。但在开发自定义 SQL 查询生成器之前,我肯定会考虑使用现有的——任务真的很复杂。以Entity Framework 为例。

    【讨论】:

    • 那没有给我任何例子
    猜你喜欢
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多