Страница 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
Вот за что я и уважаю Ваш проект, так за Ваше стремление достичь большего не останавливаясь на достигнутом.
Спасибо