खोज…


वाक्य - विन्यास

  • सार्वजनिक स्थैतिक IEnumerable <T> क्वेरी <T> (यह IDbConnection cnn, string sql, object param = null, SqlTransaction transaction = null, bool buffered = true)
  • सार्वजनिक स्थिर IEnumerable <डायनेमिक> क्वेरी (यह IDbConnection cnn, string sql, object param = null, SqlTransaction transaction = null, bool buffered = true)

पैरामीटर

पैरामीटर विवरण
सीएनएन आपका डेटाबेस कनेक्शन, जो पहले से ही खुला होना चाहिए।
एसक्यूएल निष्पादित करने की आज्ञा।
परम से पैरामीटर निकालने के लिए वस्तु।
लेन-देन लेन-देन जो इस क्वेरी का एक हिस्सा है, यदि कोई हो।
बफर क्वेरी के परिणामों को पढ़ने के लिए बफर करना है या नहीं। यह डिफ़ॉल्ट होने के साथ एक वैकल्पिक पैरामीटर सत्य है। जब बफ़र्ड सही होता है, तो परिणाम एक List<T> में बफ़र किए जाते हैं और फिर एक IEnumerable<T> रूप में लौटाया जाता है जो कई गणन के लिए सुरक्षित है। जब बफ़र झूठा होता है, तब तक sql कनेक्शन खुला रखा जाता है जब तक कि आप रीडिंग खत्म नहीं कर देते हैं, जिससे आप मेमोरी में एक ही पंक्ति को संसाधित कर सकते हैं। एकाधिक गणना डेटाबेस के लिए अतिरिक्त कनेक्शन स्पॉन करेगा। जबकि बफ़र किए गए झूठे स्मृति उपयोग को कम करने के लिए अत्यधिक कुशल हैं यदि आप केवल रिकॉर्ड के बहुत छोटे टुकड़े बनाए रखते हैं, तो इसके परिणामस्वरूप परिणाम सेट करने की तुलना में एक उल्लेखनीय प्रदर्शन ओवरहेड होता है । अंत में यदि आपके पास कई समवर्ती असंबद्ध वर्गीय कनेक्शन हैं, तो आपको कनेक्शन पूल भुखमरी पर विचार करने की आवश्यकता है जब तक कि कनेक्शन उपलब्ध न हो जाए।

स्थैतिक प्रकार के लिए क्वेरी

संकलन-समय पर ज्ञात प्रकारों के लिए, Query<T> साथ एक सामान्य पैरामीटर का उपयोग करें।

public class Dog
{
    public int? Age { get; set; }
    public Guid Id { get; set; }
    public string Name { get; set; }
    public float? Weight { get; set; }

    public int IgnoredProperty { get { return 1; } }
}    

//
IDBConnection db = /* ... */;

var @params = new { age = 3 };
var sql = "SELECT * FROM dbo.Dogs WHERE Age = @age";

IEnumerable<Dog> dogs = db.Query<Dog>(sql, @params);

गतिशील प्रकारों के लिए क्वेरी

यदि आप सामान्य प्रकार को छोड़ देते हैं तो आप गतिशील रूप से क्वेरी भी कर सकते हैं।

IDBConnection db = /* ... */;
IEnumerable<dynamic> result = db.Query("SELECT 1 as A, 2 as B");

var first = result.First();
int a = (int)first.A; // 1
int b = (int)first.B; // 2

गतिशील पैरामीटर के साथ क्वेरी

var color = "Black";
var age = 4;

var query = "Select * from Cats where Color = :Color and Age > :Age";
var dynamicParameters = new DynamicParameters();
dynamicParameters.Add("Color", color);
dynamicParameters.Add("Age", age);

using (var connection = new SqlConnection(/* Your Connection String Here */))
{
    IEnumerable<dynamic> results = connection.Query(query, dynamicParameters);
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow