powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Telerik ORM. FetchPlan with IList
1 сообщений из 1, страница 1 из 1
Telerik ORM. FetchPlan with IList
    #38306441
_andrews_.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Firebird 2.5
Telerik ORM v. 2010
Использую Forward Mapping

Пытаюсь использовать Fetch Plan для класса у которого есть колекция IList<>:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
[Persistent(IdentityField = "nr")]
public class Group
{
    [FetchField("fgGroupFull")]
    private int nr;
 
    [FetchField("fgGroupFull")]
    private string name;
 
    [FetchField("fgGroupFull", Next = "fgItemNr")]
    private IList<Item> items;
 
    public int Nr
    {
        get { return nr; }
        set { nr = value; }
    }
 
    public string Name
    {
        get { return name; }
        set { name = value; }
    }
 
    public IList<Item> Items
    {
        get { return items; }
        set { items = value; }
    }
}
 
[Persistent(IdentityField = "nr")]
public class Items
{
    [FetchField("fgItemNr")]
    private int nr;
 
    private string name;
 
    public int Nr
    {
        get { return nr; }
        set { nr = value; }
    }
 
    public string Name
    {
        get { return name; }
        set { name = value; }
    }
}



Из кода понятно, что у меня есть класс " Group " у которого есть коллеция IList " Item "
После Mapping этих двух классов в базе создается 3 таблицы:

[GROUP_]

[ITEM_]

[GROUP_ITEM] - таблица для связи " Groups " and " Items "

Мне нужно считать из базы все поля для класса " Group " и только " Nr " для элементов коллекции " Items ". Для этого я использую FetchField атрибуты

Я ожидал, что конгда я попытаюсь загрузить спиок объектов " Group " из под scope - будет выполнен только один sql-запрос примерно такого вида:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select
  g.NR,
  g.NAME_,
  i.NR
from
  GROUP_ g,
  ITEM_ i,
  GROUP_ITEM gi
where (g.NR = gi.GROUP_NR and i.NR = gi.ITEM_NR)



Но когда я загружаю список " Groups " - мне возвращается только список " Groups ", без коллекции " Items ".
И когда я пытаюсь обратится к элементам коллекции Group.Items - сейчас выполняется запрос и считываются из базы все " Items " для текущей " Group ".

У меня есть много " Groups " и много " Items " в каждой " Group "
Поэтому вместо одного запроса на выборку всех данных я имею сотни запросов для получения списка " Items " для каждой (более 100) " Group ".

Как мне оптимизировать работу FetchPlan для коллекции IList чтобы выполнялся только 1 запрос?

Спасибо.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Telerik ORM. FetchPlan with IList
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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