2009-11-19 41 views
1

真的很难解决这个问题。使用nhibernate我试图从两个不同的数据库中加入两个不同的表,但我得到一个排序规则冲突错误。流利的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 Management Studio中,但运行失败,如果我追加整理返回结果。

任何帮助将大大收到。

多喜欢C

回答

0

确定这个问题的答案是简单的(它会出现),你不能使用2个不同的域模型从具有2组不同的排序规则2个不同的数据库。

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

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