0

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

这是我想要得到的结果

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)
          }
     );
4

2 回答 2

0

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

于 2013-06-09T02:42:57.743 回答
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?)),
      }
 );
于 2013-06-13T02:16:09.513 回答