2013-03-19 2 views
1

Каков наилучший способ написать этот запрос в linq?Под-запрос в linq

SELECT * 
    FROM product_master 
    where product_id in (select product_id from product where buyer_user_id=12) 

ответ

3
var _result = from a in product_master 
       where (product.Where(s => s.buyer_user_id == 12)) 
         .Contains(a.product_ID) 
       select a; 

или

var _result = (from a in product_master 
       join b in product 
        on a.product_id equals b.product_id 
       where b.buyer_user_id == 12 
       select a).Distinct(); 
+0

спасибо, что работали – ChampChris

+0

вы радушны ': D' –

0

ответ JW является правильным. С другой стороны, учитывая, что подзапрос не коррелируют, вы могли бы выразить это отдельно:

var pids = product.Where(p => p.buyer_user_id == 12); 
var r = product_master.Where(pm => pids.Contains(pm.product_id)); 
+0

спасибо за предложение – ChampChris

Смежные вопросы