Oracle
 sql >> база данни >  >> RDS >> Oracle

ServiceStack OrmLite с множество сървъри за бази данни

Да, възможно е и поддръжката за това вече е вградена в OrmLiteConnectionFactory , вижте Пример за главния SQLServer + Sqlite на началната страница на проекта на OrmLite .

По принцип бихте регистрирали своя по подразбиране (или главна) връзка първо с:

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

Тогава ще регистрирате наименувана връзка за всяка друга връзка, която искате да поддържате, напр.:

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

След като това бъде конфигурирано, отварянето на връзка без посочване на име ще отвори връзка към базата данни по подразбиране, напр.:

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

Докато можете да посочите име, за да отворите наименувана връзка към db с различен доставчик, напр.:

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

Ръчно използване на различни доставчици на диалекти

Разликите между реализациите на SQL Provider между различните RDBMS се съдържат във всеки доставчик на диалект. Така че, ако искате да използвате методите за разширение за удобство на OrmLite срещу конкретна реализация на ADO.NET доставчик, просто трябва да зададете 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 и Mono impls)
  • 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. конвертирайте в ПРОЦЕДУРА pl/sql

  2. Създайте таблица в процедурата

  3. Едноредови функции в Oracle sql

  4. Алтернатива на sys_refcursor

  5. когато вмъкнете персийски символ в oracle db, виждам въпросителния знак