将Lambda表达式转换为sql查询

本文关键字:sql 查询 转换 Lambda 表达式 | 更新日期: 2023-09-27 17:59:58

我启动了一个项目,该项目将允许我使用lambda表达式创建sql查询。

出于某种原因,当我尝试以下代码时,用"Convert"方法注入的lambda请帮助我理解原因以及如何避免它。

GroupBy函数:

public QueryBuilder<T> GroupBy(params Expression<Func<T, object>>[] expression)
{
    _groupBy.AddRange(expression);
    return this;
}

用法示例:

query.GroupBy(x=>x.IntExample,x=>x.StringExample)

来自即时:

 expression
 {System.Linq.Expressions.Expression<System.Func<Tests.Example,object>>[2]}
 [0]: {x => Convert(x.IntExample)}
 [1]: {x => x.StringExample}

免费填写以分叉项目:https://github.com/matanshidlov/Lambda-To-Sql/tree/master/Lambda-To-Sql

将Lambda表达式转换为sql查询

object是一个引用类型。int是一种值类型。为了将int转换为object,从而转换为引用类型,必须将int装箱。装箱包括创建一个引用类型对象作为int的包装。这就是Convert的作用。

请参阅:装箱和取消装箱(C#编程指南)
以及:表达式。转换方法