संकलन त्रुटि
'System.Data.SqlClient.SqlConnection' नहीं लागू विधि 'क्वेरी' नाम दिया है, लेकिन उस नाम से एक विस्तार विधि प्रतीत होता है। एक्सटेंशन विधियों को गतिशील रूप से प्रेषित नहीं किया जा सकता है। गतिशील तर्कों को कास्ट करने या एक्सटेंशन विधि वाक्यविन्यास के बिना एक्सटेंशन विधि को कॉल करने पर विचार करें।क्या "विस्तार विधियों को गतिशील रूप से प्रेषित नहीं किया जा सकता" यहां क्या कारण है?
अब, मैं कैसे समस्या को हल करने के लिए पता है, लेकिन मैं खुद को त्रुटि का एक बेहतर समझ पाने के लिए कोशिश कर रहा हूँ। मेरे पास कक्षा है जिसे मैं डेपर का लाभ उठाने के लिए तैयार कर रहा हूं। अंत में मैं अपने प्रकार के डेटा को और अधिक सुव्यवस्थित बनाने के लिए कुछ और कस्टम कार्यक्षमता प्रदान करने जा रहा हूं। विशेष रूप से ट्रेसिंग और सामान में इमारत।
public class Connection : IDisposable
{
private SqlConnection _connection;
public Connection()
{
var connectionString = Convert.ToString(ConfigurationManager.ConnectionStrings["ConnectionString"]);
_connection = new SqlConnection(connectionString);
_connection.Open();
}
public void Dispose()
{
_connection.Close();
_connection.Dispose();
}
public IEnumerable<dynamic> Query(string sql, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, int? commandTimeout = null, CommandType? commandType = null)
{
// this one works fine, without compile error, so I understand how to
// workaround the error
return Dapper.SqlMapper.Query(_connection, sql, param, transaction, buffered, commandTimeout, commandType);
}
public IEnumerable<T> Query<T>(string sql, dynamic param = null, IDbTransaction transaction = null, bool buffered = true, int? commandTimeout = null, CommandType? commandType = null)
{
// this one is failing with the error
return (IEnumerable<T>)_connection.Query(sql, param, transaction, buffered, commandTimeout, commandType);
}
}
लेकिन काफी दिलचस्प है, अगर मैं बस इस तरह एक बयान जारी करने के लिए किए गए::
_connection.Query("SELECT * FROM SomeTable");
तब भी वह अच्छे संकलित हालांकि, अभी यह इस रूप में सरल है।
तो, क्या कोई मुझे समझने में मदद कर सकता है कि उन अन्य विधियों के अंदर एक ही अधिभार का लाभ उठाने से उस त्रुटि में असफल क्यों हो रहा है?
@pst, पर्याप्त मेला, यह तकनीकी रूप से फेंक नहीं है। –
ऑब्जेक्ट परम के बजाय आपको गतिशील param की आवश्यकता क्यों है? आप इस पर कोई संचालन या विधि कॉल नहीं कर रहे हैं। क्या आप? –