流利的nhibernate整理冲突

时间:2009-11-19 16:30:07

标签: nhibernate fluent-nhibernate collation conflict

真的很难解决这个问题。使用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的末尾但是找不到任何明显的东西。

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

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

非常喜欢c

1 个答案:

答案 0 :(得分:0)

好的答案就是(看起来很简单),你不能使用来自2个不同数据库的2个不同的域模型,这些数据库有2种不同的排序规则。

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

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