Question

Depuis la mise à niveau de NH 3.0 à 3.1, j'ai eu du mal à utiliser le code suivant:

 criteria = session.CreateCriteria<User>()
    .Add(SqlExpression.InG<User, int>(user => user.ID, toBeFechted)); // toBefetched is an IList<int>

Cela se compilera bien, mais lors de l'exécution, j'obtiens une exception dès que j'ajoute l'état en condition aux critères.

System.MissingMethodexception: Méthode introuvable: nhibernate.criterion.abstractcriterion nhibernate.criterion.restrictions.ing (System.String, System.Collections.Generic.Collection1<**UNKNOWN TYPE**>). at NHibernate.LambdaExtensions.SqlExpression.InG(Expression1 expression, valeurs icollection`1)

Je peux reconstruire la requête en utilisant Queryover au lieu de critères et cela fonctionnera, mais cela nécessite de déterrer beaucoup de code que je n'ai pas le temps de faire. En utilisant NH 3.0, je n'ai pas eu le problème.

Quelque chose a changé dans NH 3.1 ou ai-je un problème de DLL étrange?

Était-ce utile?

La solution

Si vous utilisez les extensions LAMBDA de style OrogleCode Ollate qui ont été construites sur des assemblages NH 2.1, vous avez 2 options; - Vous pouvez rétrograder à 3.0 comme vous l'avez ou vous pouvez télécharger le Sourcecode et compiler avec les binaires ultérieurs.

Si vous ne voulez pas le faire, j'ai une copie de NhlambdaExtensions construite contre NH3.1, qui comprend tous les tests originaux qui passent pour vous donner une couverture

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top