c# - Fluent Nhibernate,添加排序规则作为约定的一部分

标签 c# sql-server fluent-nhibernate collation

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

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

最佳答案

是的,这是可能的。您可以使用 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");
    }
}

关于c# - Fluent Nhibernate,添加排序规则作为约定的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13229374/

相关文章:

c# - WPF MessageBox 关闭而不执行任何操作

c# - 从 c# 中的 list<object> 列表中删除重复的内部列表

SQL 排序/转换最后五个字符的问题

c# - Fluent Nhibernate继承抛出索引超出范围异常

c# - HibernateException : Could not create the driver from NHibernate. 驱动程序.MySqlDataDriver

c# - C#-与设计有关的配置问题(两个)

c# - 用 roslyn fix 替换评论(在正确的地方添加琐事)

SQL 服务器 : How can I select everything from a table with a prefix?

c# - 数据库中的 AppSettings 而不是 App.Config

database - 使用 NHibernate 事件监听器模拟 AFTER UPDATE ... FROM DELETED 触发器