Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

पैरामीटर के रूप में SQL स्थानिक प्रकार के साथ डैपर का उपयोग करना

अजीब और अद्भुत डीबी विशिष्ट पैराम्स को लागू करने की कुंजी SqlMapper.IDynamicParameters तक उबलती है

इस सरल इंटरफ़ेस का एक ही समापन बिंदु है:

public interface IDynamicParameters
{
    void AddParameters(IDbCommand command);
}

Dapper के पास पहले से ही इस इंटरफ़ेस का एक DB जेनेरिक कार्यान्वयन है जिसे कहा जाता है:DynamicParameters जो आपको आउटपुट को संभालने और मूल्यों को वापस करने की अनुमति देता है।

इस स्थानिक सामान का अनुकरण करने के लिए मैं कुछ इस तरह की कोशिश करूंगा:

public class SpatialParam : SqlMapper.IDynamicParameters
{
    string name; 
    object val;

    public SpatialParam(string name, object val)
    {
       this.name = name; 
       this.val = val;
    }

    public void AddParameters(IDbCommand command, SqlMapper.Identity identity)
    {
       var sqlCommand = (SqlCommand)command;
       sqlCommand.Parameters.Add(new SqlParameter
       {
          UdtTypeName = "geometry",
          Value = val,
          ParameterName = name
       });
    }
}

उपयोग:

cnn.Query("SELECT * FROM MyTable WHERE @parameter.STIntersects(MyGeometryColumn)",
  new SpatialParam("@parameter", builder.ConstructedGeometry));

इंटरफ़ेस का यह सरल कार्यान्वयन केवल एक ही परम को संभालता है, लेकिन इसे आसानी से कई पैरा को संभालने के लिए बढ़ाया जा सकता है, या तो कंस्ट्रक्टर से पास करके या एक सहायक AddParameter विधि जोड़कर।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या क्लॉज से या जहां क्लॉज में समान रूप से शामिल होना बेहतर है?

  2. एक दृश्य में संग्रहीत प्रक्रिया को कैसे कॉल करें?

  3. SQL सर्वर डेटाबेस में सक्षम / अक्षम चेक बाधाओं की सूची कैसे प्राप्त करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 86

  4. मैक पर SQLOPS कैसे स्थापित करें

  5. प्रति माह नए ग्राहकों की गणना