powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate выборка с дочерней коллекцией
2 сообщений из 2, страница 1 из 1
NHibernate выборка с дочерней коллекцией
    #39037236
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.

Наверно простой вопрос, но все не получается решить...

имеется пара классов
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
class A
{
   int Id {get;set;}
   IEnumerable<B> BList {get;set;}
}

class B 
{
   int Id {get;set;}
   bool Flag {get;set;}
   A Parent {get;set;}
}



маппинг

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
class AMap : ClassMap<A>
    {
        internal AMap()
        {
            Table("A");
            Id(x => x.Id);
            HasMany(e => e.BList)
                .Cascade.All()
                .Inverse()
                .Table("B")
                .KeyColumn("ParentId").Not.LazyLoad();
        }



Так вот, делая QueryOver для A в его списке B всегда возвращаются все элементы.
IEnumerable<A> aList = session.QueryOver<A>();

Как сделать запрос так, чтобы в его списке возвращались только те, где B.Flag == true

Варианты типа
Код: c#
1.
2.
3.
4.
  IEnumerable<A> aList = session.QueryOver<A>(() => a)
                      .JoinQueryOver<B>(e => e.BList).Where(e => e.Parent.Id == a.Id && e.Count > 0)
                      .TransformUsing(Transformers.DistinctRootEntity)
                      .List<A>();



не помогают. В списке у А всегда все элементы (маппинг делает свое)
...
Рейтинг: 0 / 0
NHibernate выборка с дочерней коллекцией
    #39037240
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
упс. Запрос второй такой, конечно.
Хотя суть не меняется.

Код: c#
1.
2.
3.
4.
  IEnumerable<A> aList = session.QueryOver<A>(() => a)
                      .JoinQueryOver<B>(e => e.BList).Where(e => e.Parent.Id == a.Id && e.Flag ==true)
                      .TransformUsing(Transformers.DistinctRootEntity)
                      .List<A>();
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate выборка с дочерней коллекцией
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]