SqlConnection
SQL सर्वर के लिए विशिष्ट है। आपको NpgsqlConnection
. का उपयोग करना होगा Postgres कनेक्शन का उपयोग करने के लिए, जिसका अर्थ है कि आपको Postgres असेंबली के संदर्भों की आवश्यकता होगी।
लेकिन आप भविष्य में एक अलग प्रदाता के पास जाने का इरादा रखते हैं, इसलिए उस कदम के प्रभाव को कम करने के लिए, अपने कोड में सामान्य आधार वर्गों का उपयोग करने का प्रयास करें। उदाहरण के लिए:
var connString = "Host=myserver;Username=mylogin;Password=mypass;Database=mydatabase";
using (DbConnection conn = new NpgsqlConnection(connString))
{
conn.Open()
using (DbCommand command = conn.CreateCommand())
{
// etc
}
}
इस तरह, जब आप अदला-बदली करते हैं, तो आपको केवल NpgsqlConnection
. को बदलना होगा SqlConnection
. के साथ अपने समाधान में . अगर आप DbProviderFactory (वहां एक अच्छा उदाहरण है) तो आप कर सकते हैं, लेकिन मूल रूप से आप केवल इस एकल खोज/प्रतिस्थापन को सहेज रहे हैं, संदर्भों को हटा रहे हैं, और कोड का एक नया संस्करण जारी कर रहे हैं।
मेरा सुझाव है पुटिंग कॉन्फ़िग फ़ाइल में कनेक्शन स्ट्रिंग कोड के बजाय (जैसा कि प्रश्न में दिखाया गया है) इसे कई जगहों पर रखने से बचने के लिए, और पुनर्निर्माण के बिना इसे बदलना आसान बनाता है।
और निश्चित रूप से आपको किसी भी कार्यान्वयन-विशिष्ट विवरण को SQL में ही ठीक करना पड़ सकता है।