【问题标题】:fluent nhibernate collation conflict流畅的nhibernate排序规则冲突
【发布时间】:2009-11-19 16:30:06
【问题描述】:

真的很难解决这个问题。使用 nhibernate 我试图从两个不同的数据库连接两个不同的表,但我得到一个排序规则冲突错误。

要解决这个问题,我知道我需要将“collat​​e Latin1_General_CI_AS”附加到我的 sql 字符串的末尾,但不知道如何使用 nhibernate 来完成。

错误:

Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_CI_AS" in the equal to operation.

一段时间以来一直在寻找解决方案,但没有任何真正的快乐。我觉得这将是一个简单的配置更改。我想也许我可以覆盖 IQuery 中的一些字符串函数以将“collat​​e Latin1_General_CI_AS”附加到 sql 的末尾,但找不到任何明显的东西。

在 ms sql 2005 管理工作室中,nhibernate 失败的 sql 失败,但如果我附加整理,则运行并返回结果。

任何帮助都会得到很大的帮助。

非常喜欢c

【问题讨论】:

    标签: nhibernate fluent-nhibernate collation conflict


    【解决方案1】:

    好的,这个问题的答案很简单(它会出现),您不能使用来自 2 个不同数据库的 2 个不同域模型,这些数据库具有 2 个不同的排序规则。

    我创建了一个命名查询并附加了排序规则解析字符串。使用下面的片段展示了如何将此查询作为域模型返回。

    IList<UserCustomer> collection = session.GetNamedQuery("GetCustomerDetails")
                        .SetResultTransformer(NHibernate.Transform.Transformers.AliasToBean(typeof(UserCustomer)))
                        .SetString("username", username)
                        .List<UserCustomer>();
    

    【讨论】:

      猜你喜欢
      • 2011-04-17
      • 1970-01-01
      • 2010-10-07
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      • 2018-03-20
      • 1970-01-01
      • 2021-11-26
      相关资源
      最近更新 更多