Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

ServiceStack OrmLite với nhiều Máy chủ Cơ sở dữ liệu

Có, có thể và hỗ trợ cho việc này đã được tích hợp sẵn trong OrmLiteConnectionFactory , hãy xem Ví dụ về phân đoạn Master SQLServer + Sqlite trên trang chủ dự án của OrmLite .

Về cơ bản, bạn sẽ đăng ký mặc định của mình (hoặc kết nối chính) trước tiên với:

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

Sau đó, bạn sẽ đăng ký một kết nối được đặt tên cho mọi kết nối khác mà bạn muốn hỗ trợ, ví dụ:

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

Khi đã được định cấu hình, việc mở một kết nối mà không chỉ định tên sẽ mở một kết nối đến cơ sở dữ liệu mặc định, ví dụ:

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

Trong khi bạn có thể chỉ định tên để mở một kết nối được đặt tên tới db với một nhà cung cấp khác, ví dụ:

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

Sử dụng thủ công các Nhà cung cấp phương ngữ khác nhau

Sự khác biệt giữa triển khai Trình cung cấp SQL giữa các RDBMS khác nhau được chứa trong mỗi trình cung cấp phương ngữ. Vì vậy, nếu bạn muốn sử dụng các phương thức mở rộng tiện lợi của OrmLite để chống lại việc triển khai nhà cung cấp ADO.NET cụ thể, bạn chỉ cần chỉ định ThreadStatic DialectProvider mà bạn muốn sử dụng, ví dụ:

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

Về cơ bản đây là tất cả những gì RegisterConnection trong OrmLiteConnectionFactory tự động thực hiện hậu trường cho bạn.

Để tham khảo, đây là tất cả các nhà cung cấp phương ngữ cho OrmLite cho đến thời điểm này:

  • SqlServerDialect.Provider
  • SqliteDialect.Provider (có sẵn các lần cấy 32/64 và Mono khác nhau)
  • 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. Kết nối bị treo sau thời gian không hoạt động

  2. Nối hai bảng với một cột có nhiều mục nhập cho bảng khác

  3. báo cáo pha lê không lấy được dữ liệu

  4. Cách định dạng số phủ định với dấu ngoặc nhọn trong Oracle

  5. Java:Io ngoại lệ:Bộ điều hợp mạng không thể thiết lập kết nối