如何申请自定义归类到SQLite数据库中的特定列?(How to apply a custom co

2019-10-29 03:41发布

在使用iBATIS.NET将数据映射到SQLite数据库我希望能够通过从英文字母稍有不同的字母,以特定的列进行排序C#应用程序(也有一些特殊字符和一些字符的顺序是不同的) 。 我想从数据库中已排序的结果得到的,因为在应用程序本身分拣由于分页是不可能的。

经过一番研究,我得出的结论是应用自定义归类可能是唯一的选择在这里。 这是结论正确吗?

然而,我无法了解这是怎么在上面描述的情况来完成。 iBATIS的API看似无关与排序规则,我没有看到一个明显的方式来实现这一摆弄数据库配置。 那么,怎么可能这样做?

Answer 1:

用户定义的函数和归类是ADO.NET驱动器的功能,而不是在它之上坐在ORM。 SQLite的ADO.Net驱动程序不会允许您定义自定义函数,检查第二这个问题的答案 :

/// <summary>
/// User-defined collating sequence using the current UI culture.
/// </summary>
[SQLiteFunction(Name = "MYSEQUENCE", FuncType = FunctionType.Collation)]
class MySequence : SQLiteFunction
{
  public override int Compare(string param1, string param2)
  {
    return String.Compare(param1, param2, true);
  }
}

你需要使用它与之前注册在你的代码的功能

SQLiteFunction.RegisterFunction(typeof(MySequence));

性能可能是一个问题,你会进行比较时,每次支付的Interop的价格叫



文章来源: How to apply a custom collation to specific columns of an SQLite database?