2009-11-19 83 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>();