ServiceStack.OrmLite。 CreateTable 方法缺少定义 COLLATION 的选项?

ServiceStack.OrmLite. CreateTable method lacks option to define COLLATION?

我发现创建的 table 遵循 MySql 中的 collation_database/collation_server 变量。

有一段时间我很困惑为什么“Ö”和“O”被以相同的方式解释,但当我意识到排序是问题所在时,我希望 OrmLite 用正确的方式创建 tables整理。但是,我没有找到任何方法来使用 CreateTable 方法和定义排序规则。

CreateTable 调用完成后,运行 一个自定义 SQL 我在其中更改 table,例如:

alter table convert to character set latin1 collate latin1_swedish_ci;

或者在 OrmLite 中已经有办法做到这一点了吗?

OrmLite 本身不支持使用自定义排序规则创建表,但您可以使用 Pre/Post Custom SQL Hooks 在使用以下属性创建表之前和之后执行自定义 SQL:

[PreCreateTable(runSqlBeforeTableCreated)]
[PostCreateTable(runSqlAfterTableCreated)]
[PreDropTable(runSqlBeforeTableDropped)]
[PostDropTable(runSqlAfterTableDropped)]
public class Table {}