2011-11-22 20 views
7

एक डैपर एक्सटेन्शन प्रोजेक्ट प्रतीत होता है, लेकिन डैपर प्रोजेक्ट में एक स्क्लेमैपर एक्सटेंशन एक्सटेंशन भी है। क्या ओवरलैप है? क्या एक दूसरे पर पसंद है? मुझे Dapper.Contrib पर कोई दस्तावेज नहीं मिल रहा है। https://github.com/StackExchange/Dapper/blob/master/Dapper.Contrib/SqlMapperExtensions.csडैपर स्क्लेमैपर एक्सटेंशन/डैपर। कॉन्ट्रिब?

सबसे अच्छा प्रलेखन परीक्षण का मामला वर्ग है: https://github.com/StackExchange/Dapper/tree/master/Dapper.Contrib

SqlMapperExtensionsDapper.Contrib भीतर योगदान तरीकों से युक्त स्थिर वर्ग है:

उत्तर

3

मुझे लगता है कि user1003841 था https://github.com/tmsmith/Dapper-Extensions का जिक्र है।

लेखक थैड स्मिथ और पेज ब्रूक्स हैं - इसलिए यह सैम केसर का काम नहीं है। प्रोजेक्ट पेज कहता है "यह लाइब्रेरी डैपर से अलग प्रयास है। कॉन्ट्रिब"।

+0

"लेखक थैड स्मिथ और पेज ब्रूक्स हैं - इसलिए यह सैम केसर का काम नहीं है।" मुझे उत्तर दिया गया कि मूल उत्तर – Terry

2

मैंने पहली डैपर लिखा था। सैम के साथ कुछ चर्चा के बाद बहुत समय पहले संपर्क करें। मुझे एक्सटेंशन-पैकेज का ब्योरा नहीं पता है और वे एक ही सीआरयूडी-चीज को कम या ज्यादा करते हैं लेकिन कुछ परिदृश्यों में कंट्रीब-पैकेज कुछ हद तक तेज़ हो सकता है क्योंकि इसमें दोनों प्रश्नों और इंटरफ़ेस के लिए कैश में बनाया गया है एक आंतरिक "गंदे" ट्रैकिंग के साथ आधारित पीओसीओ। परीक्षण कोड से छीन लिया गया:

 using (var connection = GetOpenConnection()) 
     { 
      connection.Get<User>(3).IsNull(); 

      var id = connection.Insert(new User {Name = "Adam", Age = 10}); 

      //get a user with "isdirty" tracking 
      var user = connection.Get<IUser>(id); 
      user.Name.IsEqualTo("Adam"); 
      connection.Update(user).IsEqualTo(false); //returns false if not updated, based on tracking 
      user.Name = "Bob"; 
      connection.Update(user).IsEqualTo(true); //returns true if updated, based on tracking 
      user = connection.Get<IUser>(id); 
      user.Name.IsEqualTo("Bob"); 

      //get a user with no tracking 
      var notrackedUser = connection.Get<User>(id); 
      notrackedUser.Name.IsEqualTo("Bob"); 
      connection.Update(notrackedUser).IsEqualTo(true); //returns true, even though user was not changed 
      notrackedUser.Name = "Cecil"; 
      connection.Update(notrackedUser).IsEqualTo(true); 
      connection.Get<User>(id).Name.IsEqualTo("Cecil"); 

      connection.Query<User>("select * from Users").Count().IsEqualTo(1); 
      connection.Delete(user).IsEqualTo(true); 
      connection.Query<User>("select * from Users").Count().IsEqualTo(0); 

      connection.Update(notrackedUser).IsEqualTo(false); //returns false, user not found 

योगदान में अच्छी लग रही भविष्य प्रणाली नहीं है जो एक्सटेंशन है। नोट डैपर पर एक अच्छा धागा है। Dapper.Rainbow VS Dapper.Contrib

+0

से आया था, मुझे यकीन है कि मुझे कुछ गूंगा और स्पष्ट याद आ रहा है - लेकिन मुझे लगता है कि "उपयोगकर्ता को लाइन 3 पर IsNull के लिए परिभाषा नहीं है"। IsNull कहां से आया है? धन्यवाद। – niico

+0

क्या आपके पास इस कोड की पूरी सूची के लिए एक लिंक है? – niico

+1

IsNull() विधि केवल एक साधारण परीक्षण-विधि है जिसे गिटहब पर डैपर-स्रोत में शामिल किया गया है –

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