2011-09-30 22 views
7

मैं कैसे LINQमैं LINQ में विभाजन द्वारा कैसे उपयोग कर सकता हूं?

select 
    CONTENT 
    from 
    ( 
     select 
      CONTENT, 
      CAM_ID, 
      max(CAM_ID) over (partition by DOCUMENT_ID) MAX_ID 
     from  
      T_CAM_REVISION 
     where 
      DOCUMENT_ID = '101' 
    ) 
    where  
    CAM_ID = MAX_ID 

को यह क्वेरी को बदलने के लिए तो मैं सामग्री की एक एकल मान प्राप्त कर सकते हैं के बारे में उलझन में हूँ।

उत्तर

2

LINQ में max(...) over (...) करने का कोई तरीका नहीं है। यहाँ एक बराबर क्वेरी है:

var maxCamID = 
    context.T_CAM_REVISION 
    .Where(rev => rev.DOCUMENT_ID == "101") 
    .Max(rev => rev.CAM_ID); 

var query = 
    from rev in context.T_CAM_REVISION 
    where rev.CAM_ID == maxCamID 
    where rev.DOCUMENT_ID == "101" 
    select rev.CONTENT; 

आप केवल एक ही परिणाम चाहते हैं:

var result = 
    context.T_CAM_REVISION 
    .First(rev => rev.CAM_ID == maxCamID 
       && rev.DOCUMENT_ID == "101") 
    .CONTENT; 
संबंधित मुद्दे

 संबंधित मुद्दे