Я обычно запрашивать интерфейсы, используя DetachedCriteria в NHibernate:Используя интерфейс для подзапроса в NHibernate
DetachedCriteria crit = DetachedCriteria.For<IParent>();
И это работает отлично.
Теперь я хочу, чтобы создать подзапрос для дочернего объекта таким образом:
DetachedCriteria subcrit = DetachedCriteria.For<IChild>();
и добавить его к критериям, как этот (вид, p.Child на самом деле это псевдоним, но я упростил):
crit.Add(LambdaSubquery.Property<IParent>(p => p.Child.ChildID).In(subcrit));
Это работает, если мой DetchedCriteria для ребенка:
DetachedCriteria subcrit = DetachedCriteria.For<Child>();
, но это не для интерфейса (как указано выше). В этом случае я получаю исключение:
NHibernate.MappingException: No persister for: Domain.Name.Space.IChild
Является ли это чем-то, что должно быть или мне не хватает какой-либо конфигурации?
Является ли IChild явно ссылкой на любые сопоставления? Если я не думаю, что вам нужно это (.Import в свободном nhibernate, я думаю) –
Nicholas
Есть ли способ выполнить такой импорт с отображением HBN (например, без Fluent Nhibernate)? –