मैं जानता हूँ कि यह एक पुराने सवाल यह है की तरह (, 5 साल पुराना) लेकिन मैं एक ही चीज़ से संघर्ष कर रहा था। पूरा जवाब अन्य उत्तरों के टिप्पणियों में है, लेकिन मैंने सोचा कि मैं यहां एक पूर्ण उदाहरण पेश करूंगा।
string query = "SELECT * FROM MyTableName WHERE Foo = @Foo AND Bar = @Bar";
Dictionary<string, object> dictionary = new Dictionary<string, object>();
dictionary.Add("@Foo", "foo");
dictionary.Add("@Bar", "bar");
var results = connection.Query<MyTableName>(query, new DynamicParameters(dictionary));
या, पूरी तरह से गतिशील होने के लिए, अगर आप इस तरह एक विधि बना सकते हैं, जो किसी भी मॉडल, किसी भी प्रश्न है, और क्वेरी पैरामीटर के किसी सेट ले जाएगा:
public static IEnumerable<T> Get<T>(string query, Dictionary<string, object> dictionary)
{
IEnumerable<T> entities = connection.Query<T>(query, new DynamicParameters(dictionary));
return entities;
}
और फिर इस कॉल करने के लिए विधि:
var results = Get<MyTable>(query, dictionary)
स्रोत
2017-08-24 15:26:46
ध्यान दें कि आप 'नया डायनामिक पैरामीटर (शब्दकोश)' कर सकते हैं और यह ठीक काम करेगा। – asgerhallas
@asgerhallas जो फरवरी में सच नहीं हो सकता है, लेकिन हाँ: आप सही हैं - यह निश्चित रूप से अब सत्य है –
नए डायनामिक पैरामीटर (शब्दकोश) को काम करने के लिए, शब्दकोश एक आईनेमरेबल> , उदाहरण के लिए शब्दकोश । शब्दकोश काम नहीं किया। –