优秀的ServiceStack OrmLite有很多功能。
我有一个场景,我有两个或更多单独的SQLite DB,如何使用OrmLite加入/附加它们?
我是否必须编写RAW SQL或者我可以使用哪些内置功能?
谢谢
答案 0 :(得分:1)
OrmLite支持Multi-nested named connections,它允许您以不同的名称注册多个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));
}