使用 servicestack ormlite 动态创建(和 select 从)一个 table

Create (and select from) a table dynamically using servicestack ormlite

我正在使用 C#,我尝试使用 ServiceStack.OrmLite 创建一个 table,对应于在 中创建的 class 类型运行-time,我搜索了题目,找到了如下解决方案:

这将创建 table Employee 对应于(动态创建的类型 "Employee")

我可以获得一个 TypedApi,它可用于插入、删除、更新动态创建的 Employee table。

是否可以从对应于 运行 时间创建的类型的 table 生成 select?

感谢您的帮助!

OrmLite API 和 SqlExpression 是类型化的,但您可以为您的运行时类型执行自定义 SQL,例如:

var modelDef = employeeType.GetModelMetadata();
var tableName = db.GetDialectProvider().GetQuotedTableName(modelDef);
var sql = $"SELECT * FROM {tableName}";

然后您可以 Select 使用 dynamic result set APIs 之一,例如:

var results = db.Select<List<object>>(sql);
var results = db.Select<Dictionary<string,object>>(sql);
var results = db.Select<dynamic>(sql);