2013-07-25 76 views
1

我有一個現有的LINQ to Entities查詢,我需要添加一個case語句。在psuedo中,如果CertType列爲0,則從db.LWCertColls中提取註釋,否則從db.LWCertLoans中提取註釋(註釋列在兩個表中都存在)。我知道下面的不行,但注意if語句。我怎麼寫這個工作?在LINQ到實體的案例聲明

  aryData = 
       (From lwl In db.LWCertLoans _ 
       Join c In db.Loans _ 
      On c.LoanNum Equals lwl.LoanNum _ 
      Join p In db.LWCertColls _ 
      On lwl.CertID Equals p.CertID _ 
      Join r In db.RespCntrs _ 
      On r.BranchNum Equals c.BranchNum _ 
      Join cert In db.LWCerts 
      On cert.LWCertID Equals lwl.CertID _ 
      Where p.LoanNum = lwl.LoanNum _ 
      Select New With { _ 
       .ToBeProcessedDate = cert.ToBeProcessedDate, _ 
      .CertType = cert.CertType, _ 
      .CertCollID = p.CertCollID, _ 
      .CertificateID = p.CertID, _ 
      .LoanNumberTypeAndCurrencyCombined = c.LoanNum, _ 
      .LoanType = c.LoanType, _ 
      .CurrType = r.CurrType, _ 
      .CollanteralBalance = c.ColCurBal, _ 
      .SalesAdditions = p.Sales, _ 
      .CreditMemos = p.Credits, _ 
      .CashRemovals = p.NetCollect, _ 
      .NonDilutiveAdjustment = p.PlusAdj, _ 
      .Discounts = p.Discounts, _ 
      .NonARCash = p.NonARCash, _ 
      .DilutiveAdjustment = p.NegAdj, _ 
      .LWCertCollsComments = p.Comments, _ 
      .StatusCode = p.StatusCode, _ 
      .CertLoanID = lwl.CertLoanID, _ 
      .Modified = lwl.Modified, _ 
      .LoanNum = lwl.LoanNum, _ 
      .EffectiveDate = lwl.EffectiveDate, _ 
      .RepWireNumber = lwl.RepWireNumber, _ 
      .Advance = lwl.Advance, _ 
      .ModifiedDate = lwl.ModifiedDate, _ 
      .DDAAccountName = lwl.DDAAccountName, _ 
      .LWCertLoansComments = lwl.Comments, _ 

    if cert.CertType = 0 then 
      .Comment = p.Comments 
    else 
    .Comment = lwl.Comments 
    end if 


    }).ToArray() 

回答

1
.Comment = cert.CertType = 0 ? p.Comments : lwl.Comments 

沒有100%確定這句法與雖然關於LINQ。

+0

謝謝布拉德!不知道這是否可能。你的代碼的VB版本是我用過的.Comment = If(cert.CertType = 0,p.Comments,lwl.Comments) – Chris