2015-01-21 6 views
8

मैं स्कॉटी वेब ढांचे के साथ लगातार ओआरएम का उपयोग करता हूं।हास्केल निरंतर: अगर मेरे पास पूर्णांक चर में कुंजी है तो डीबी से इकाई कैसे प्राप्त करें?

मैं आईडी द्वारा डीबी से मूल्य प्राप्त करना चाहता हूं। ये आईडी मेरे पास अनुरोध कर रहे हैं

"प्राप्त करें" फ़ंक्शन "कुंजी इकाई" चर लेता है और "शायद इकाई" देता है।

मैं निम्नलिखित कोड का उपयोग

k <- keyFromValues $ [(PersistInt64 myOwnIntVarFromRequest)] 
case k of 
    Left _ -> {-some processing-} 
    Right x -> do 
    t <- liftIO . runDb $ get (x::Key Post) --Post is one of my models 
    case t of 
     Nothing -> {-processing-} 
     Just x -> {-processing-} 

db ये कोड extremly बदसूरत है से मूल्य मिलता है। लेकिन मुझे नहीं पता कि यह बेहतर तरीके से कैसे करें

तो मेरा सवाल यह है कि keyFromValues ​​को कॉल किए बिना "कुंजी इकाई" प्रकार के चर कैसे प्राप्त करें।

पुनश्च क्षमा करें मेरी गरीब अंग्रेजी

उत्तर

11

के लिए आपको लगता है कि के लिए toSqlKey उपयोग कर सकते हैं।

+0

उत्तर के लिए धन्यवाद! –

+0

@ माइकल-स्नॉयमैन: क्या होगा यदि कुंजी में 'Int64' के अलावा कुछ प्रकार है? –

+0

मैं वास्तव में लगातार अधिक लचीली प्राथमिक कुंजी तंत्र से परिचित नहीं हूं, इसलिए मैं उस मामले को संभालने के बारे में सलाह नहीं दे सकता। –

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