/// <summary> /// 转换成Linq查询条件 /// </summary> /// <typeparam name="TEntity"></typeparam> /// <returns></returns> public Expression <Func <TEntity, bool> > ToLinq <TEntity, TKey>() where TEntity : class, IAggregateRoot <TEntity, TKey> { Expression <Func <TEntity, bool> > predicate = null; if (Field.IsNotNullOrEmpty() && Value.IsNotNullOrEmpty()) { switch (Operator) { case OperatorCompare.Equal: predicate = Lambda.Equal <TEntity>(Field, Value); break; case OperatorCompare.Greater: predicate = Lambda.Greater <TEntity>(Field, Value); break; case OperatorCompare.GreaterEqual: predicate = Lambda.GreaterEqual <TEntity>(Field, Value); break; case OperatorCompare.Less: predicate = Lambda.Less <TEntity>(Field, Value); break; case OperatorCompare.LessEqual: predicate = Lambda.LessEqual <TEntity>(Field, Value); break; case OperatorCompare.NotEqual: predicate = Lambda.NotEqual <TEntity>(Field, Value); break; } } // 根据时间和基准时间构建表达式 predicate = TimeType.GetPredicate <TEntity, TKey>(ReferTime, predicate); return(predicate); }
public TEntity GetLastSingle(TimeType timeType, DateTime dateTime, Expression <Func <TEntity, bool> > predicate) { predicate = timeType.GetPredicate <TEntity, TKey>(dateTime, predicate); return(GetSingle(predicate)); }
public IEnumerable <TEntity> GetLastList(TimeType timeType, DateTime dateTime, Expression <Func <TEntity, bool> > predicate) { predicate = timeType.GetPredicate <TEntity, TKey>(dateTime, predicate); return(GetList(predicate)); }