У меня есть сущность с полем типа enum, которая сохраняется как целое число в моей базе данных.Ограничение запроса NHibernate с использованием ICriteria в соответствии с перечислением перечислений
При извлечении объектов из базы данных с помощью ICriteria я хочу ограничить результаты теми, у которых поле является членом набора значений перечисления. Есть ли ограничения. В работе с коллекцией перечислений?
Следующие не работают. Должен ли я выполнять что-то вроде литья типа в разделе «limits.in» запроса?
var myEnumCollection = new MyEnum[] { MyEnum.One };
return FindAll<MyType>(Restrictions.In("EnumProperty", myEnumCollection));
FindAll является методом инкапсуляции
criteria.GetExecutableCriteria(Session).List<MyType>()
Несколько вещей могут помочь вам получить ответ здесь ... 1) Опубликовать сопоставление для вашего свойства enum, 2) Разместить полученный sql, который генерируется этим запросом критики. – DanP
У меня такая же проблема, как у вас (я преобразовал свой enum в int, и все же я получаю сообщение об ошибке «Нельзя использовать коллекции с InExpression». Поскольку вопрос был очень старым, мне интересно, нашли ли вы решение ? Благодаря – Beatles1692