如何用createdatetime函数创建一个表达式调用

本文关键字:一个 表达式 调用 何用 createdatetime 函数 创建 | 更新日期: 2023-09-27 18:17:38

我正在尝试创建一个具有六个参数函数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)
          }
     );

如何用createdatetime函数创建一个表达式调用

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

这里可以解决

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?)),
      }
 );