将Lambda表达式转换为sql查询

时间:2015-06-27 16:27:22

标签: c# sql linq lambda expression

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

由于某些原因,当我尝试下面的代码时,注入“转换”方法的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

1 个答案:

答案 0 :(得分:1)

object是参考类型。 int是值类型。要将int转换为object,从而转换为引用类型,int必须装箱。拳击涉及创建一个引用类型对象作为int周围的包装器。这就是Convert的作用。

请参阅:Boxing and Unboxing (C# Programming Guide)
还有:Expression.Convert Method