如何使用ServiceStack OrmLite连接或附加多个SQLite数据库?
本文关键字:SQLite 数据库 ServiceStack 何使用 OrmLite 连接 | 更新日期: 2023-09-27 18:14:57
优秀的ServiceStack OrmLite有大量的特性。
我有一个场景,我有两个或多个独立的SQLite数据库,我如何使用OrmLite加入/附加它们?
我必须写RAW SQL还是有任何内置的功能,我可以使用?
谢谢
OrmLite支持多嵌套命名连接,允许您以不同的名称注册多个RDBMS连接,例如:
//Set default connection
var dbFactory = new OrmLiteConnectionFactory(
"~/App_Data/db.sqlite".MapAbsolutePath(), SqliteDialect.Provider);
//Setup multiple named connections
dbFactory.RegisterConnection("db1",
"~/App_Data/db1.sqlite".MapAbsolutePath(), SqliteDialect.Provider);
dbFactory.RegisterConnection("db2",
"~/App_Data/db2.sqlite".MapAbsolutePath(), SqliteDialect.Provider);
您可以使用注册的名称访问每个Sqlite数据库。
由于Sqlite不支持跨数据库连接,你不能创建一个SQL查询,跨越多个数据库,所以如果你想合并结果从两个你需要做的代码,例如:
var results = new List<Table>();
using (var db1 = dbFactory.OpenDbConnection("db1"))
using (var db2 = dbFactory.OpenDbConnection("db2"))
{
results.AddRange(db1.Select<Table>(q => q.Category = category));
results.AddRange(db2.Select<Table>(q => q.Category = category));
}