2

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

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

4

1 回答 1

2

是的,这是可能的。您可以使用 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");
    }
}
于 2014-02-10T12:50:16.813 回答