वर्क्स भी:
public class MyRow
{
public int Id { get; set; }
public string UniqueString { get; set; }
}
उसके बाद, आप सिर्फ इस करना होगा
var myDictionary = conn.Query<string, int, KeyValuePair<string,int>>(sql, (s,i) => new KeyValuePair<string, int>(s,i))
.ToDictionary(kv => kv.Key, kv => kv.Value);
नोट: Dapper.NET 3.5 संस्करण का उपयोग करते समय, क्वेरी विधि जो पहले, दूसरे और वापसी प्रकारों को लेती है, आपको अधिक पैरामीटर निर्दिष्ट करने की आवश्यकता होती है, .NET 4.0 और .NET 4.5 संस्करण optional arguments का लाभ उठाते हैं।
इस मामले में, निम्नलिखित कोड काम करना चाहिए:
string splitOn = "TheNameOfTheValueColumn";
var myDictionary = conn.Query<string, int, KeyValuePair<string,int>>(sql, (s,i) => new KeyValuePair<string, int>(s,i), null, null, false, splitOn, null, null)
.ToDictionary(kv => kv.Key, kv => kv.Value);
तर्कों में से अधिकांश एक डिफ़ॉल्ट पर वापस चला जाएगा, लेकिन splitOn
की आवश्यकता है, के रूप में यह अन्यथा 'आईडी' के एक मूल्य लागू हो जाएगी।
एक प्रश्न है कि दो कॉलम देता है, 'आईडी' और 'विवरण' के लिए, splitOn
करने के लिए 'विवरण' स्थापित किया जाना चाहिए।
को स्पष्टीकरण के लिए धन्यवाद मुझे यह भी एहसास नहीं हुआ कि आप क्वेरी विधि में रिटर्न प्रकार छोड़ सकते हैं। – jpshook
एफवाईआई।लौटने वाले क्षेत्रों के लिए उन संपत्ति नाम केस संवेदनशील हैं। ओरेकल में खेतों को मेरे पास लौटाया जा रहा था, इसलिए सभी पूंजी अक्षरों में उदाहरण के लिए पंक्ति थी। यूनिकस्ट्रिंग ओरेकल से पंक्ति के रूप में वापस आ रही थी। अनियंत्रण। –
@ अन्य आरडीबीएमएस के बाद से कॉलिन केस संवेदनशील नामों के लिए अनुमति देता है (इसलिए .foo, .FOO और .Foo सभी अलग हैं) मुझे यकीन नहीं है कि मैं इसके बारे में बहुत कुछ कर सकता हूं, कहने के अलावा "जो भी आपकी आरडीबीएमएस लौटाता है" –