如何使用函数createdatetime创建表达式调用?

时间:2013-06-09 02:41:23

标签: c# parameters expression

我正在尝试使用六参数函数CreateDateTime创建一个表达式调用,在表达式中我是初学者,有人帮忙吗? THKS。

以下是我想要的结果

m => m.OpenDate >= EntityFunctions.CreateDateTime(2012, 12, 22, 0, 0, 0)

当我尝试写这个但总会出现异常。

Expression.Call(typeof(EntityFunctions), "CreateDateTime",
      new Type[]
          {
            typeof(int?), typeof(int?), typeof(int?), 
            typeof(int?), typeof(int?), typeof(double?)
          }, 
      new Expression[]
          {
            Expression.Constant(2012),
            Expression.Constant(12),
            Expression.Constant(22),
            Expression.Constant(0),
            Expression.Constant(0),
            Expression.Constant(0.0)
          }
     );

2 个答案:

答案 0 :(得分:0)

DateTime类已经有一个构造函数,它使用这些参数来创建一个DateTime对象。

答案 1 :(得分:0)

这里可以解决它

Expression.Call(typeof(EntityFunctions), "CreateDateTime",
  new Type[]
      {
        typeof(int?), typeof(int?), typeof(int?), 
        typeof(int?), typeof(int?), typeof(double?)
      }, 
  new Expression[]
      {
        Expression.Convert(Expression.Constant(2012),typeof(int?)),
        Expression.Convert(Expression.Constant(12),typeof(int?)),
        Expression.Convert(Expression.Constant(22),typeof(int?)),
        Expression.Convert(Expression.Constant(0),typeof(int?)),
        Expression.Convert(Expression.Constant(0),typeof(int?)),
        Expression.Convert(Expression.Constant(0.0),typeof(double?)),
      }
 );