Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

ServiceStack OrmLite dengan beberapa Server Database

Ya itu mungkin dan dukungan untuk ini sudah ada di OrmLiteConnectionFactory , lihat Contoh Master SQLServer + Sqlite shard di halaman beranda proyek OrmLite .

Pada dasarnya Anda akan mendaftarkan default . Anda (atau master) koneksi terlebih dahulu dengan:

var dbFactory = new OrmLiteConnectionFactory(
  "Data Source=host;Initial Catalog=RobotsMaster;Integrated Security=SSPI", 
  SqlServerDialect.Provider); 

Kemudian Anda akan mendaftarkan koneksi bernama untuk setiap koneksi lain yang ingin Anda dukung, mis:

dbFactory.RegisterConnection("shard-1", 
  "~/App_Data/{0}.sqlite".Fmt(shardId).MapAbsolutePath(),
    SqliteDialect.Provider);

Setelah dikonfigurasi, membuka koneksi tanpa menentukan nama akan membuka koneksi ke database default, mis:

using (IDbConnection db = dbFactory.OpenDbConnection()) { ... } //Default DB

Sementara Anda dapat menentukan nama untuk membuka koneksi bernama ke db dengan penyedia yang berbeda, mis:

using (var dbShard = dbFactory.OpenDbConnection("shard-1")) { ... } //Named DB

Gunakan Penyedia Dialek yang berbeda secara manual

Perbedaan antara implementasi Penyedia SQL antara RDBMS yang berbeda terkandung dalam setiap penyedia dialek. Jadi, jika Anda ingin menggunakan metode ekstensi kenyamanan OrmLite terhadap implementasi penyedia ADO.NET tertentu, Anda hanya perlu menetapkan ThreadStatic DialectProvider yang ingin Anda gunakan, mis:

OrmLiteConfig.DialectProvider = SqlServerDialect.Provider;
var dbConn = new SqlConnection(SqlServerConnString);
dbConn.Select<Table>(); //All db access now uses the above dialect provider

Ini pada dasarnya adalah apa RegisterConnection di OrmLiteConnectionFactory secara otomatis melakukan di belakang layar untuk Anda.

Untuk referensi di sini adalah semua penyedia dialek untuk OrmLite hingga saat ini:

  • SqlServerDialect.Provider
  • SqliteDialect.Provider (berbeda 32/64 dan impls Mono tersedia)
  • MySqlDialect.Provider
  • PostgreSqlDialect.Provider
  • OracleDialect.Provider
  • FirebirdDialect.Provider



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan PLS-00539 dan PLS-00538 saat membuat fungsi UDT

  2. Apakah ada cara untuk meneruskan tipe khusus dari C# ke Oracle menggunakan System.Data.OracleClient?

  3. untuk loop di dalam oracle kursor

  4. Membaca gumpalan baris demi baris dengan pl\sql

  5. Bagaimana menangani panggilan Oracle Store Procedure dengan Oracle Types sebagai input atau output menggunakan EclipseLink