Страница 1 из 2

Linq и анонимы

Добавлено: 13 дек 2010, 00:25
Павел
Добрый день!

Подскажите если я регистрирую linq запрос с анонимными типами
через BussinesObject дерево объекта вручную можно построить но
дальше корневого типа дизайнер не возвращает поля вложенных типов

И почему дизайнер сам не создает вложенные типы в объекте


Linq и анонимы

Добавлено: 13 дек 2010, 08:26
Ivan
Здравствуйте.
Подскажите если я регистрирую linq запрос с анонимными типами
через BussinesObject дерево объекта вручную можно построить но
дальше корневого типа дизайнер не возвращает поля вложенных типов
На прошлой неделе в дизайнере было исправлено несколько ошибок, связанных с получением вложенных типов.
Патч будет включен в завтрашний билд (от 14-Dec-2010).
Пожалуйста попробуйте использовать этот билд и сообщите нам о результатах.

Код: Выделить всё

И почему дизайнер сам не создает вложенные типы в объекте
Вложенные типы могут быть ссылками на родительские типы, в результате может получиться зацикливание и построение бесконечного дерева.
Также бывает необходимо некоторые типы не раскручивать, т.е. оставить ссылку на объект именно как ссылку.
Поэтому было принято решение: в дизайнере не раскручивать вложенные типы автоматически.

Это можно сделать из кода приложения, например:

Код: Выделить всё

            report.RegBusinessObject("myData", myData);
            report.Dictionary.SynchronizeBusinessObjects(maxLevel);
Спасибо.

Linq и анонимы

Добавлено: 13 дек 2010, 20:52
Павел
Ух ты а я грешил на report.Dictionary.Synchronize()
а с report.Dictionary.SynchronizeBusinessObjects(maxLevel) - пролетел, виноват
Жду новый билд

Linq и анонимы

Добавлено: 14 дек 2010, 07:35
Aleksey
Здравствуйте,

Сообщите нам, если понадобится дополнительная помощь.

Спасибо.

Linq и анонимы

Добавлено: 21 дек 2010, 10:17
Павел
Попробовал на версии от 15 декабря не видит колонки, всё так-же видит колонки только первого уровня

Linq и анонимы

Добавлено: 21 дек 2010, 10:52
Павел
Да и не хочет видеть вложенные анонимы дальше второго уровня
мини пример:

Код: Выделить всё

 var aData = new string[]{ "a1", "a2", "a3" };
 var bData = new string[] { "b1", "b2", "b3" };
 var cData = new string[] { "c1", "c2", "c3" };

                var rData = from a in aData
                            select new
                            {
                                a,
                                b = from b in bData
                                    select new
                                    {
                                        b,
                                        c = from c in cData
                                            select new
                                            {
                                                c
                                            }
                                    }
                            };

                foreach (var a in rData)
                {
                    foreach (var b in a.b)
                    {
                        foreach (var c in b.c)
                        {
                            Console.WriteLine(string.Format("{0} {1} {2}", a.a, b.b, c.c));
                        }

                    }
                    
                }

Stimulsoft.Report.StiReport report = new Stimulsoft.Report.StiReport();
report.RegBusinessObject("rData", rData);
report.Design();
Должны были получить что-то вроде:
a1 b1 c1
a1 b1 c2
a1 b1 c3
.....
a3 b3 c2
a3 b3 c3

А имеем:
Изображение
далее
Изображение

Linq и анонимы

Добавлено: 23 дек 2010, 11:33
Aleksey
Здравствуйте,

Мы все проверили, проанализировали, внесли некоторые поправки, но, к сожалению, из-за особенности работы анонимных типов, они у нас,
на данный момент, функционировать не будут.

Спасибо.

Linq и анонимы

Добавлено: 27 дек 2010, 12:05
Viacheslav
Жаль поскольку в Linq это очень гибкий инструмент облегчающий построение результатов при сложных запросах к различным источникам, например Entity Framework

Надеюсь мы скоро этот барьер осилим!

Спасибо

Linq и анонимы

Добавлено: 28 дек 2010, 03:51
Aleksey
Здравствуйте,

Мы добавили реализацию данного функционала в наш список дел, но я не могу сказать, когда он будет доступен.

Спасибо.

Linq и анонимы

Добавлено: 28 дек 2010, 10:25
Viacheslav
Вот за что я и уважаю Ваш проект, так за Ваше стремление достичь большего не останавливаясь на достигнутом.

Спасибо