2011-07-29 22 views
6

लौटाया है हम अपने एसक्यूएल डेटा को मैप करने के लिए डैपर का उपयोग कर रहे हैं और अब तक यह बहुत अच्छी तरह से काम कर रहा है।डैपर हैंडलिंग ने खाली परिणाम सेट

someObject = con.Query<T>("GetInfoSproc", p, commandType: CommandType.StoredProcedure).Single(); 

यह महान रूप में लंबे समय से काम करता है संग्रहीत प्रक्रिया मैं रिटर्न डेटा फोन कर रहा हूँ के रूप में: हालांकि हम कहाँ के लिए इसी तरह कुछ कर रहे हैं मैं एक मामला है। ऐसे समय होते हैं जहां संग्रहीत प्रक्रिया परिणाम नहीं दे सकती है और आउट पैरामीटर में त्रुटि लौटा सकती है। इसका कारण यह है व्यवसायिक त्रुटि फेंकता डैप्पर में एक समस्या पैदा करने के लिए लगता है:

वहाँ एक है "बहु मानचित्रण API का उपयोग करके जब आप splitOn परम सेट अगर तुम ईद के अलावा अन्य कुंजी सुनिश्चित" क्वेरी लिखने का तरीका ताकि जब खाली परिणाम लौटाया जाए या यह डैपर की सीमा हो तो यह ठीक से केस को संभाल सकता है?

+1

मैं आगे के लिए इस पर गूगल कोड पर एक मुद्दा खोल दिया है है बनाने की आवश्यकता होगी चर्चा: http://code.google.com/p/dapper-dot-net/issues/detail?id=57 – TodK

+0

उन लोगों के लिए जो इस प्रश्न में आ सकते हैं, मुझे यह जवाब मिला [http: // stackoverflow। com/प्रश्न/11720611/कैसे करने वाली वापसी-शून्य-से-एक dapp er-query-बल्कि-default-defaultt) सहायक। –

उत्तर

1

SingleOrDefault() अपने दोस्त यहाँ

इस प्रयास करें है:

someObject = con.Query<T>("GetInfoSproc", p, commandType: CommandType.StoredProcedure).SingleOrDefault(); 
if (someObject != null) 
{ 
    // operate on your results here 
} 
return someObject; 
भी

क्या आप वाकई TNullable

+0

यदि संभावना है कि आपकी एसपीआरसी की एक सूची वापस कर सकती है, तो सिंगलऑर्डडिल्ट अपवाद फेंक देगा। उस मामले में FirstOrDefault का उपयोग करने के लिए सबसे अच्छा है। डैपर दस्तावेज़ देखें: http://dapper-tutorial.net/querysingleordefault – maurocam

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