C # 3.0, Nhibernate 2.1.2, Castle ActiveRecord 2.1, WinXP 32
У меня проблема с фильтрацией элементов с помощью ActiveRecord и DetachedCriteria.Есть 2 таблицы, одна содержит объекты для фильтрации (PropertyContainer), а другая содержит значения свойства dymamic, установленные для этого объекта (PropertyValue).
PropertyContainer
Id int
PropertyValue
Id int
ContainerId int
Value real
Мне нужно выбрать объект PropertyContainer со значениями из таблицы PropertyValue, соответствующими некоторому условию (например, свойство с Id = 1 и значением> 2).Я хотел бы сделать это с помощью DetachedCriteria, я пытаюсь написать что-то вроде этого:
var detachedCriteria = DetachedCriteria.For(typeof(PropertyContainer));
detachedCriteria.SetProjection(
Projections.SqlProjection(@"select Value from PropertyValue where Id=1"),
new[] { "ExternalProperty" },
new[] { NHibernateUtil.Double }));
detachedCriteria.Add(Expression.Ge("ExternalProperty",2));
var filteredItems = PropertyContainer.SlicedFindAll(0,100,detachedCriteria);
Затем этот вызов выполняется, я получаю следующую ошибку: «не удалось разрешить свойство: ExternalProperty of: PropertyContainer»
Вопрос:
- Что не так с этим подходом?
- Как правильно выполнить фильтрацию по динамическому набору свойств, используя ActiveRecord / NHibernate и DetachedCriteria?