Что требуется для выполнения задачи (список может пополняться):
1. Наличие DTO для клиента и бизнес-объекта для апп-сервера.
2. У обоих должна быть реализована версионность или как минимум откат изменений.
Нужно знать, какие именно поля были изменены.
(что-то вроде EditableObject, только своя реализация)
3. Возможность загружать/сохранять в объекте лишь часть данных.
Возможность узнать какие именно данные были загружены.
(требуется для массовой обработки объектов)
4. Наличие метаданных для описания объектов в XML(с последующей генераций кода)
и возможность доступа к метаданным в runtime.
Комментарий: по поводу пунктов 2 и 3 — есть мысль хранить значения полей объекта
в некой структуре (например в словаре), доступ через свойства.
Хотелось бы возложить на BLT работу по CRUD операциям, по маппингу данных в объект.
Возможно ли это при наличии свойств и внутренней структуры данных в объекте?
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, NetFox, Вы писали:
IT>Вопрос не совсем понятен. Пункты 1-4 должны возлагаться на BLT или BLT должен всего лишь поддерживать такие структуры?
Поддерживать.
Пункты 1-4 — это будет моя реализация. Это краткое описание особенностей объектной модели.
Хотел узнать, справится ли BLT с маппингом на свойства, а не на поля, ибо самих полей как таковых не будет (уже выснил — справляется)
и как оптимальней всего залить в объект лишь часть данных (ручной запрос с нужными полями не прадлагать ) ?
На данный момент задача BLT — снять основную рутину CRUD операций бизнес-объектов.
Re[3]: Возможно ли использовать BLT в этих условиях
Здравствуйте, NetFox, Вы писали:
NF>и как оптимальней всего залить в объект лишь часть данных (ручной запрос с нужными полями не прадлагать ) ?
Мапиться будут только те поля, которые будут присутствовать в источнике.
Думаю, ещё будет интересен интерфейс ISupportMapping и его методы BeginMapping/EndMapping, которые вызываются непосредственно до и после работы с объектом.
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Возможно ли использовать BLT в этих условиях
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, NetFox, Вы писали:
NF>>и как оптимальней всего залить в объект лишь часть данных (ручной запрос с нужными полями не прадлагать ) ?
IT>Мапиться будут только те поля, которые будут присутствовать в источнике.
Это понятно, надо только придумать, каким образом в методе GetPersons(string[] columns) сообщить BLT, что интересуют только те поля, которые указаны в параметрах.
Есть идеи?
IT>Думаю, ещё будет интересен интерфейс ISupportMapping и его методы BeginMapping/EndMapping, которые вызываются непосредственно до и после работы с объектом.
Пока еще не знаю, как его использовать, но возьму на вооружение.
Спасибо!
Re[5]: Возможно ли использовать BLT в этих условиях
Здравствуйте, NetFox, Вы писали:
NF>Это понятно, надо только придумать, каким образом в методе GetPersons(string[] columns) сообщить BLT, что интересуют только те поля, которые указаны в параметрах. NF>Есть идеи?
Естественно речь идет об универсальном решении, работающем для всех объектов: правильней вот так
Здравствуйте, NetFox, Вы писали:
NF>>Это понятно, надо только придумать, каким образом в методе GetPersons(string[] columns) сообщить BLT, что интересуют только те поля, которые указаны в параметрах. NF>>Есть идеи?
Можно посмотреть на SqlQuery. Там как раз реализованы CRUDL операции, но для всех полей объекта.
Если нам не помогут, то мы тоже никого не пощадим.
Re[7]: Возможно ли использовать BLT в этих условиях