Бизнес-объекты из Xml

отредактировано 20:35 Раздел: FastReport .NET
День добрый.
Пара мыслей в слух...
В FastReport из моего приложения необходимо передавать довольно сложные по структуре данные. Передачи через датасет не достаточно, т.к. во-первых, все связи в передаваемых данных имеют тип многие ко многим (т.е. каждая связь представляется через промежуточную таблицу), во-вторых, в связке master-detail-subdetail-... на вложенном уровне нельзя использовать привязку к таблице, которая уже была использована на более высоком уровне, в-третьих, при передаче данные имеют «плоскую» структуру (т.е. на нулевом уровне таблицы, на первом их поля и связи).
Бизнес-объекты в этом случае подходят гораздо больше, но тут тоже не все гладко: структура бизнес-объектов, которые потом надо передать в FastReport, выясняется только на этапе работы моего приложения (их структура и поля и тд. заранее неизвестны). Выход тут только один, сборка классов «налету», с последующей передачей. Но тут очень много возни, в связи с чем возникла мысль о возможности передачи бизнес объектов в FastReport в виде двух строк: первая строка содержит xml с данными для бизнес-объекта, а вторая xsd схему для этого бизнес-объекта (report.RegisterData(string boXml, string boXsd)). По этим данным вполне можно собрать бизнес объект, а сборка xml и xsd в рантайме гораздо легче, чем генерация классов. Хотелось бы узнать ваше мнение на этот счет.

Комментарии

  • отредактировано 20:35
    Здравствуйте,

    Фастрепортовские источники данных на основе бизнес-объектов с xml работать не могут: им подавай классы (типы или готовые экземпляры), вся работа с ними идет через PropertyDescriptor. Переделать это под xml нереально.

    Не посмотреть ли Вам в сторону какого-нибудь ORM?
  • отредактировано 20:35
    Понятно, пойду мучать ORM и динамическую компиляцию кода.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.