2009-05-07 3 views
1

에서 나는이 작업을 수행 할 수 있습니까? 가 tsc.TransactionID가에 (거래에서 t에서 ........하위 쿼리 경우 X에서 (...?

 Eg: 
     var query = (from tsd in TransactionSampleDetails 
     join tsc in TransactionSamples on tsd.TransactionSampleID equals tsc.TransactionSampleID 
     join qp in QualityParameters on tsd.ParameterID equals qp.ParameterID 
     where tsc.TransactionID in (from t in Transactions where t.StockpileID == 7122 select t.TransactionID) 
     select new 
     { 
      TransactionID = tsc.TransactionID, 
      ParameterName = qp.Parameter, 
      ParameterValue = tsd.ActualValue 
     }); 
+0

확인 VAR로이있어 TransactionSampleDetails에 TSD에서 쿼리 = ( \t \t \t이 tsd.TransactionSampleID에 TransactionSamples에서 TSC에 가입하는 것은 tsd.ParameterID이 거래 어디에서 t에서 qp.ParameterID \t \t \t (동일에 \t \t \t QualityParameters에서 QP에 가입 tsc.TransactionSampleID 동일 t.StockpileID의 == 7122 t.TransactionID) .Contains (tsc.TransactionID 해당) \t \t \t 새로운 \t \t \t \t \t { 0123을 선택\t는 TransactionId = tsc.TransactionID, \t \t \t \t 경우 ParameterName = qp.Parameter, \t \t \t \t가 parameterValue = tsd.ActualValue \t \t \t}); query.Dump(); – Sreedhar

답변

2

당신은 사용할 수 있습니다 포함 :

where (from t in Transactions 
     where t.StockpileID == 7122 
     select t.TransactionID).Contains(tsc.TransactionID) 

마음이 당신이 그것을 다른를 사용하는 것이보다 효율적이고 적합 할 수 있습니다 가입 :

join t in Transactions.Where(t => t.StockpileID == 7122) 
    on tsc.TransactionId equals t.TransactionID