如何使用ServiceStack OrmLite联接或附加多个SQLite数据库? - c#

出色的ServiceStack OrmLite具有很多功能。

我有一个场景,其中有两个或多个单独的SQLite数据库,如何使用OrmLite联接/附加它们?

我必须编写RAW SQL还是可以使用任何内置功能?

谢谢

参考方案

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));
}

Sqlite WHERE子句使用参数 - c#

尝试使用where子句运行特定查询,这就是我所拥有的。//ID is user input could be anything SqliteParameter Identifier = new SqliteParameter ("@ID", ID); string SQLText = "SELECT Email FROM Cli…

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

改造正在返回一个空的响应主体 - java

我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…

每个文件合并后添加换行 - python

我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…

Json到php,json_decode返回NULL - php

我正在用PHP进行JSON解析器的一些API,用于存储有关遗产的信息。我在解析时遇到问题,因为它返回的是NULL值而不是数组或对象。简单的JSON代码可以很好地解析,但是可以这样:{"success":true,"totalCount":1,"data":[{"id":99694…