public IList<EWebSMSAndUser> Search(IList<Guid> ltVehicleCode, string userCode, DateTime beginDate, DateTime endDate, bool? isRead, IList<int> ltType, int rowIndex, int pageSize, out int rowCount) { //using (IRepository repository = SessionManager.CreateRepository(typeof(EWebSMSAndUser))) //{ // IList<EWebSMSAndUser> list = new List<EWebSMSAndUser>(); // Expression expression = null; // Query query = new Query(typeof(EWebSMSAndUser)); // ExpressionUtility<string>.AddExpression("ReceiveUserCode", userCode, BinaryOperatorType.EqualTo, ref expression); // ExpressionUtility<DateTime>.AddExpression_Between("ReceiveTime", beginDate, endDate, ref expression); // //ExpressionUtility<bool?>.AddExpression("IsRead", isRead, BinaryOperatorType.EqualTo, ref expression); // if (!ltVehicleCode.IsNullOrEmpty()) // { // query.Associations.Add(new Association("Info")); // ExpressionUtility<Guid>.AddExpression("Info.VehicleCode", ltVehicleCode, PolynaryOperatorType.In, ref expression); // } // ExpressionUtility<int>.AddExpression("SMSInfoType", ltType, PolynaryOperatorType.In, ref expression); // query.Order = Order.Asc("IsRead") & Order.Desc("ReceiveTime"); // query.Expression = expression; // query.Projections.Add(Projection.RowCount()); // rowCount = repository.Single<int>(query); // if (rowCount == 0) // return null; // query.Index = rowIndex; // query.Count = pageSize; // query.Projections.Clear(); // list = repository.List<EWebSMSAndUser>(query); // return list; //} //代码优化后 SMSVehicleDAL veDal = new SMSVehicleDAL(); return veDal.GetAllSearch(ltVehicleCode, userCode, beginDate, endDate, null, ltType, rowIndex, pageSize, out rowCount); }