C# 流利的Nhibernate,添加排序规则作为约定的一部分

C# 流利的Nhibernate,添加排序规则作为约定的一部分,c#,sql-server,fluent-nhibernate,collation,C#,Sql Server,Fluent Nhibernate,Collation,是否可以控制Nhibernate为nvarchar类型的所有列生成的排序规则?根据软件安装的区域性,最好从安装程序中控制它,安装程序将从配置文件中读取此选项 我找到了一些向具体查询结果添加排序规则的方法是的,这是可能的。您可以使用CustomSqlType指定列的排序规则(以NOCASE排序规则为例): public class caseinsensitivityestringconvention约定:IPropertyConvention接受,IPropertyConvention { 公共无

是否可以控制Nhibernate为nvarchar类型的所有列生成的排序规则?根据软件安装的区域性,最好从安装程序中控制它,安装程序将从配置文件中读取此选项


我找到了一些向具体查询结果添加排序规则的方法

是的,这是可能的。您可以使用CustomSqlType指定列的排序规则(以NOCASE排序规则为例):

public class caseinsensitivityestringconvention约定:IPropertyConvention接受,IPropertyConvention
{
公共无效接受(IAcceptanceCriteria标准)
{
//在这里可以做更多的工作,以确保您只获得nvarchars
Expect(c=>c.Property.PropertyType==typeof(string));
}
公共无效应用(IPropertyInstance实例)
{
CustomSqlType(“文本整理NOCASE”);
}
}
public class CaseInsensitiveStringConvention : IPropertyConventionAcceptance, IPropertyConvention
{
    public void Accept(IAcceptanceCriteria<IPropertyInspector> criteria)
    {
        // More work could be done here to ensure you get nvarchars only
        criteria.Expect(c => c.Property.PropertyType == typeof(string));
    }

    public void Apply(IPropertyInstance instance)
    {
        instance.CustomSqlType("text COLLATE NOCASE");
    }
}