2016-10-18 2 views
1

저는 Linq에서 새롭고이 SQL 쿼리를 Linq 형식으로 변환하려고합니다. 다중 수행 방법 Linq에서 선택 위치

나도이 SO 질문에보고 한 SQL 형식

select * 
from investorwallets iw 
where transactionid in 
(select investordepositid from investordeposits) 
or transactionid in 
(select withdrawalid from investorwithdrawals) 
or transactionid in 
(select paymentdistributionid from paymentdistributions) 

이지만위한 행운 나

편집이 내가 시도 무엇

. 나는 그것을 테스트하기 위해 Linqpad를 사용한다.

from iw in Investorwallets 
where (
      from id in Investordeposits // I got error from here 
      select id.investordepositid 
     ) 

누구든지 나를 도울 수 있는가?

+1

이 (.Contains'IW를 추가합니다. transactionid)'. 그런 다음 다른 기준들과 유사하게 '||'를 쓰면 끝납니다. –

답변

1

가장 직접적인은 감사 :

from iw in investorwallets 
where investordeposits.Any(iten => item.investordepositid == iw.transactionid) || 
     investorwithdrawals.Any(iten => item.withdrawalid == iw.transactionid) || 
     paymentdistributions.Any(item => item.paymentdistributionid == iw.transactionid) 
select iw; 

당신은 또한 노동 조합 결과 다음은 .Contains을 할 수 그러나

:

var ids = investorwithdrawals.Select(item => item.investordepositid) 
          .Union(investorwithdrawals.Select(item => item.withdrawalid)) 
          .Union(paymentdistributions.Select(item => item.paymentdistributionid)); 

var result = investorwallets.Where(item => ids.Contains(item.transactionid)); 
+1

안녕 친구, 그것을 시도하고, 곧 당신에게 업데이 트됩니다 감사합니다 – Webster

+1

그것은 젠체하는 사람입니다. 답변을 수락했음을 고맙게 생각합니다. 고마워요 :) – Webster

+1

@Webster - 당신은 환영합니다. –

1
 List<investorwallet> investorwallets = GetInvestorwallets(); 
     List<investordeposit> investordeposits = GetInvestordeposits(); 
     List<investorwithdrawal> investorwithdrawals = GetInvestorwithdrawals(); 
     List<paymentdistribution> paymentdistributions = GetPaymentdistribution(); 

     List<investorwallet> newList = investorwallets.Where(x => investordeposits.Any(y=>y.investordepositid == x.transactionid) 
             || investorwithdrawals.Any(y => y.withdrawalid == x.transactionid) 
             || paymentdistributions.Any(y => y.paymentdistributionid == x.transactionid)).ToList(); 
+0

도움이되어 주셔서 감사합니다. gilad의 답변을 표시해야합니다. 왜냐하면 그가 처음이기 때문입니다. :) – Webster