perform if statement in the where clause

Posts   
 
    
TaLz
User
Posts: 12
Joined: 26-May-2009
# Posted on: 26-May-2009 15:49:29   

hello, when running the following code i get an "llblgen Booleans are not supported in Oracle databases" this code is for a query form where the user may enter values

  1. i saw the PredicateBuilder class. however i don't have one entity of type T. my select statement is form a number of tables.

  2. also i want to build a new object as u can see bellow.

does the PredicateBuilder provide this functionality. if so can you please post a small example.

the code: LinqMetaData metaData = new LinqMetaData(new DataAccessAdapter());

        var ds = from acctTransactionTable in metaData.AcctAccountTransactions

                 join inputTransactionTable in metaData.HfkdInputTransactStorage

                 on acctTransactionTable.CurrentTransactionId equals inputTransactionTable.TransactionId

                 join actionType in metaData.VwHfkdActionType

                 on acctTransactionTable.ActionTypeId equals actionType.Value

                 where acctTransactionTable.OwnerId == request.AccountID

                 && acctTransactionTable.OwnerTypeId == AccountType

                 && acctTransactionTable.ProcessingMonth >= (request.ProcessingMonthFrom != null ? request.ProcessingMonthFrom : acctTransactionTable.ProcessingMonth)

                 && acctTransactionTable.ProcessingMonth <= (request.ProcessingMonthUntil != null ? request.ProcessingMonthUntil : acctTransactionTable.ProcessingMonth)

                 && acctTransactionTable.ValueDate >= (request.ValueDateFrom != null ? request.ValueDateFrom : acctTransactionTable.ValueDate)

                 && acctTransactionTable.ValueDate <= (request.ValueDateUntil != null ? request.ValueDateUntil : acctTransactionTable.ValueDate)

                 && acctTransactionTable.ActionDate >= (request.ActionDateFrom != null ? request.ActionDateFrom : acctTransactionTable.ActionDate)

                 && acctTransactionTable.ActionDate <= (request.ActionDateUntil != null ? request.ActionDateUntil : acctTransactionTable.ActionDate)

                 && acctTransactionTable.ActionTypeId == (request.MainActionTypeID != null ? request.MainActionTypeID : acctTransactionTable.ActionTypeId)

                 && inputTransactionTable.TransactionStatusId == (request.Status != null ? request.Status : inputTransactionTable.TransactionStatusId)

                 && acctTransactionTable.TrackId == (request.TrackID != null ? request.TrackID : acctTransactionTable.TrackId)

                 && acctTransactionTable.TaxLevelId == (request.TaxLevelID != null ? request.TaxLevelID : acctTransactionTable.TaxLevelId)

                 select new AccountTransactionDataRecord
                 {
                     ACCUMULATING_PART_ID = acctTransactionTable.ComponentTypeId,
                     ACTION_DATE = acctTransactionTable.ActionDate,
                     COMPONENT_ID = acctTransactionTable.ComponentId,
                     DETAILED_ACTION_TYPE = acctTransactionTable.ActionTypeId,
                     MAIN_ACTION_TYPE = actionType.Value,
                     PROCESSINGMONTH = acctTransactionTable.ProcessingMonth,
                     SALARY = inputTransactionTable.SalarySum,
                     SALARY_MONTH = inputTransactionTable.SalaryMonth,
                     STATUS = inputTransactionTable.TransactionStatusId,
                     SUM = acctTransactionTable.Sum,
                     TAX_LEVAL_ID = acctTransactionTable.TaxLevelId,
                     TRACK_ID = acctTransactionTable.TrackId,
                     VALUE_DATE = acctTransactionTable.ValueDate
                 };

        return ds.ToList();
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39859
Joined: 17-Aug-2003
# Posted on: 26-May-2009 17:34:26   

please provide stacktrace, your runtime lib buildnr, linq provider build nr etc. please see this thread: http://www.llblgen.com/tinyforum/Messages.aspx?ThreadID=12769 for details.

Frans Bouma | Lead developer LLBLGen Pro