Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ServiceStack OrmLite z wieloma serwerami baz danych

Tak, jest to możliwe, a obsługa tego jest już wbudowana w OrmLiteConnectionFactory , zobacz Przykład Master SQLServer + Sqlite shard na stronie głównej projektu OrmLite .

Zasadniczo zarejestrowałbyś swój domyślny (lub master) połączenie najpierw z:

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

Następnie zarejestrujesz nazwane połączenie dla każdego innego połączenia, które chcesz obsługiwać, np.:

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

Po skonfigurowaniu otwarcie połączenia bez podania nazwy otworzy połączenie z domyślną bazą danych, np.:

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

Chociaż możesz określić nazwę, aby otworzyć nazwane połączenie z bazą danych z innym dostawcą, np.:

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

Ręcznie używaj różnych dostawców dialektu

Różnice między implementacjami dostawcy SQL w różnych systemach RDBMS są zawarte w każdym dostawcy dialektu. Więc jeśli chcesz użyć wygodnych metod rozszerzenia OrmLite przeciwko konkretnej implementacji dostawcy ADO.NET, wystarczy przypisać ThreadStatic DialectProvider, którego chcesz użyć, np.:

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

To w zasadzie wszystko, co RegisterConnection w OrmLiteConnectionFactory automatycznie robi dla Ciebie za kulisami.

Dla odniesienia tutaj są wszyscy dostawcy dialektów dla OrmLite do tego momentu:

  • SqlServerDialect.Provider
  • SqliteDialect.Provider (dostępne różne impli 32/64 i Mono)
  • 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. Nie można użyć kolumn filtru z dziennika widoku zmaterializowanego w tabeli

  2. Kolumna obcinania Oracle

  3. oblicz godziny na podstawie godzin pracy w Oracle SQL

  4. Oracle SQL Dev, jak obliczyć liczbę dni tygodnia między 2 datami

  5. 12c Redakcja danych