J'ai une entité, avec un champ de type enum, qui est conservé en entier dans ma base de données.Restriction d'une requête NHibernate en utilisant ICriteria selon une énumération d'énumérations
Lorsque je récupère des objets de la base de données en utilisant ICriteria, je souhaite limiter les résultats à ceux dont le champ est membre d'une collection de valeurs enum. Restrictions.In travailler avec une collection d'enums?
Ce qui suit ne fonctionne pas. Dois-je effectuer quelque chose comme le cast de type dans la partie "restrictions.in" de la requête?
var myEnumCollection = new MyEnum[] { MyEnum.One };
return FindAll<MyType>(Restrictions.In("EnumProperty", myEnumCollection));
FindAll est une méthode d'encapsulation
criteria.GetExecutableCriteria(Session).List<MyType>()
Quelques éléments peuvent vous aider à obtenir une réponse ici ... 1) Publiez le mappage pour votre propriété enum, 2) Publiez le sql résultant qui est généré par cette requête critiera. – DanP
J'ai le même problème que le vôtre (j'ai converti mon enum en int et je reçois toujours une erreur qui dit "Impossible d'utiliser des collections avec InExpression" .Cela a été une très vieille question, je me demande si vous avez trouvé une solution ? Merci – Beatles1692