हाँ यह संभव है और इसके लिए समर्थन पहले से ही OrmLiteConnectionFactory
में अंतर्निहित है , देखें ऑर्मलाइट के प्रोजेक्ट होम पेज पर मास्टर SQLServer + स्क्लाइट शार्ड उदाहरण
.
मूल रूप से आप अपना डिफ़ॉल्ट . पंजीकृत करेंगे (या मास्टर) पहले कनेक्शन के साथ:
var dbFactory = new OrmLiteConnectionFactory(
"Data Source=host;Initial Catalog=RobotsMaster;Integrated Security=SSPI",
SqlServerDialect.Provider);
तब आप एक नामित कनेक्शन register पंजीकृत करेंगे हर दूसरे कनेक्शन के लिए जिसे आप समर्थन देना चाहते हैं, उदा:
dbFactory.RegisterConnection("shard-1",
"~/App_Data/{0}.sqlite".Fmt(shardId).MapAbsolutePath(),
SqliteDialect.Provider);
एक बार यह कॉन्फ़िगर हो जाने के बाद, बिना नाम बताए एक कनेक्शन खोलने से डिफ़ॉल्ट डेटाबेस से एक कनेक्शन खुल जाएगा, उदा:
using (IDbConnection db = dbFactory.OpenDbConnection()) { ... } //Default DB
जबकि आप एक अलग प्रदाता के साथ एक डीबी के लिए नामित कनेक्शन खोलने के लिए एक नाम निर्दिष्ट कर सकते हैं, उदाहरण:
using (var dbShard = dbFactory.OpenDbConnection("shard-1")) { ... } //Named DB
विभिन्न बोली प्रदाताओं का मैन्युअल रूप से उपयोग करें
विभिन्न आरडीबीएमएस के बीच एसक्यूएल प्रदाता कार्यान्वयन के बीच अंतर प्रत्येक बोली प्रदाता के भीतर निहित है। इसलिए यदि आप किसी विशिष्ट ADO.NET प्रदाता कार्यान्वयन के विरुद्ध OrmLite की सुविधा विस्तार विधियों का उपयोग करना चाहते हैं, तो आपको केवल उस ThreadStatic DialectProvider को असाइन करने की आवश्यकता है जिसका आप उपयोग करना चाहते हैं, उदा:
OrmLiteConfig.DialectProvider = SqlServerDialect.Provider;
var dbConn = new SqlConnection(SqlServerConnString);
dbConn.Select<Table>(); //All db access now uses the above dialect provider
यह अनिवार्य रूप से वही है जो RegisterConnection
OrmLiteConnectionFactory में स्वचालित रूप से आपके लिए पर्दे के पीछे करता है।
संदर्भ के लिए यहां अब तक OrmLite के सभी बोली प्रदाता हैं:
- SqlServerDialect.Provider
- SqliteDialect.Provider (विभिन्न 32/64 और मोनो इम्प्लांट उपलब्ध हैं)
- MySqlDialect.Provider
- PostgreSqlDialect.Provider
- OracleDialect.Provider
- FirebirdDialect.Provider