如何使用linq2db和CreateTable设置SQLite COLLATE NOCASE列?

时间:2019-02-05 09:51:06

标签: sqlite linq2db

如果使用linq2db从类定义中创建表,请帮助我如何设置列排序规则? 我正在使用linq2db 2.6.3从SQLite本地应用程序数据库中获取数据

应用程序中有一种工作模式,如果数据库不存在,则会创建数据库。

它看起来像.when('/subpath') { template: '<templatePath>', controller: '<controllerName>', reloadOnSearch: false }的方法,并且数据库是使用DataConnection.CreateTable扩展构建的

Code first

默认情况下,SQLite的文本列具有区分大小写的列排序规则。

我想像

那样使用void CreateTableIfNotExists<TDto>(DataConnection conn) { var sp = conn.DataProvider.GetSchemaProvider(); var dbSchema = sp.GetSchema(conn); var tableName = typeof(TDto).Name; if (!dbSchema.Tables.Any(t => t.TypeName == tableName)) { //no required table-create it conn.CreateTable<TDto>(); } } 创建文本列
COLLATE NOCASE

我发现做到这一点的唯一方法是设置列格式并将create table Test ( Name nvachar(255) null COLLATE NOCASE ) 附加到格式字符串,如下所示

COLLATE NOCASE

它可以工作,但是有没有更方便的方法来实现相同目的?

0 个答案:

没有答案