2012-09-14 31 views
5

इस सी # को एफ # में समग्र कुंजी खंड के साथ कैसे शामिल करें? :FSharp क्वेरी एक्सप्रेशन में समग्र कुंजी खंड के साथ जुड़ने के लिए कैसे लिखें?

join k in DataContext.Catalogs on 
    new { id = o.IDENT, v = o.VZ } equals 
    new { id = k.IDENT, v = k.VZ } 

यह इस के लिए समान सवाल यह है: groupby multiple columns in a F# 3.0 query है जो अभी भी उत्तर नहीं दिया गया। लेकिन मुझे विश्वास नहीं है कि इसे एफएसएचआरपी में लिखना आसान नहीं है।

धन्यवाद

उत्तर

9

उपयोग tuples कुंजी क्षेत्रों आप चाहते हैं:

query { 
    for o in DataContext.OTable do 
    join k in DataContext.Catalogs on 
    ((o.IDENT, o.VZ) = (k.IDENT, k.VZ)) 
    select (o.IDENT, k.VZ) 
} 

ध्यान दें कि आप एफ # में नामित क्षेत्रों के साथ एक अनाम प्रकार नहीं बना सकते हैं, जैसे आप सी # में कर सकते हैं। टुपल्स शायद निकटतम और सबसे बेवकूफ अनुवाद हैं। टॉमस का जवाब here देखें।