【问题标题】:Changing the collation in a single query using Linq to NHibernate使用 Linq to NHibernate 在单个查询中更改排序规则
【发布时间】:2013-07-18 20:24:18
【问题描述】:

我必须在 Linq to NHibernate 的单个查询中使用不同的排序规则(SQL Server)。

像这样: var peoples = session.Query().Where(f=>f.Name.Contains('João', Collat​​ion.AccentInsensitive));

【问题讨论】:

    标签: .net sql-server linq nhibernate collation


    【解决方案1】:

    由于 NHibernate 源代码甚至不包含为此所需的 SQL 关键字 (COLLATE),我想说您需要自己实现它。看这里:NHibernate LINQ provider extension

    【讨论】:

    • 本示例使用 HqlTreeBuilder.Like() 现有方法。您有新关键字实现的示例吗?
    • 我的问题是追加整理结果:SELECT * FROM Peoples WHERE Name COLLATE SQL_Latin1_General_CP1_CI_AS = 'João'
    • @PatrickCoelho 您必须在自定义方言中注册自定义 SQL 函数,然后在 HQL 构建器中使用 treeBuilder.MethodCall 调用此函数。
    猜你喜欢
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-30
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多