2009-11-19 9 views
1

vraiment du mal à résoudre ce problème. en utilisant nhibernate Im essayant de joindre deux tables différentes à partir de deux bases de données différentes mais en obtenant une erreur de conflit de collationnement.fluent nhibernate collation conflit

Pour résoudre ce problème, je sais que je dois ajouter "assembler Latin1_General_CI_AS" à la fin de ma chaîne SQL, mais je n'ai aucune idée de comment le faire en utilisant nhibernate.

Erreur:

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

ont cherché des solutions pendant un certain temps sans joie réelle. J'ai l'impression que ce sera un simple changement de configuration. Je pensais que peut-être je pourrais substituer une fonction de chaîne dans IQuery pour ajouter "assembler Latin1_General_CI_AS" à la fin de la sql, mais ne pouvait rien trouver d'évident.

le sql qui échoue échoue dans le studio de gestion ms sql 2005 mais s'exécute et renvoie un résultat si j'ajoute l'assemblage.

toute aide serait grandement appréciée.

beaucoup d'amour c

Répondre

0

ok la réponse à cette question est tout simplement (il semblerait), vous cant en utilisant 2 différents modèles de domaine de 2 bases de données différentes qui ont 2 différents classements.

J'ai créé une requête nommée et ajouté la chaîne d'analyse de classement. L'utilisation de l'extrait ci-dessous montre comment renvoyer cette requête en tant que modèle de domaine.

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