2009-04-01 3 views
1

Предположим, у вас есть бизнес-объект с большим количеством объектов. Каков самый простой и лучший способ установить свойства без использования инструмента ORM?Самый быстрый способ установки свойств объекта?

Это подразумевает установку свойств из объекта чтения данных, такие как

client.Name = (string)reader["Name"]; 

Что можно сказать о случае, когда объект содержит другие сложные объекты?

Любые предложения?

ответ

0

Сериализация и/или отражение - опция.

+0

Отражение создает проблему, когда имя столбца не соответствует объекту, соответствующему названию свойства. – sduplooy

+0

Если вы не указали сопоставление между именами столбцов и именами свойств, вы не сможете достичь того, чего хотите. Указание такого сопоставления приводит к созданию пользовательского ORM или использованию существующего. – sangupta

1

Ну, вы можете использовать отражение для генерации кода назначения.

0

Вы запрашиваете три разные вещи:

  • быстрый
  • простой
  • лучший

они не то же самое! самый быстрый (при исполнении) будет скомпилирован код; т. е. вы регулярно пишете C#, чтобы правильно установить свойства. Легче, чем использование рефлексии, но это медленное. Вам также потребуется некоторый механизм для отображения дочерних свойств ... (а также отображение регулярных свойств, если между читателем не существует соответствия 1: 1). Это, пожалуй, лучше всего разрешено с помощью настраиваемых атрибутов для членов (свойства/поля).

В качестве компромисса по скорости (над отражением) вы можете использовать Delegate.CreateDelegate для доступа к средствам настройки свойств, но это большая работа. Возможно, другой вариант: HyperDescriptor; это позволяет отражать доступ, но значительно быстрее.

Лучшее? Вероятно, использовать существующий код - то есть инструмент ORM; меньше писать и отлаживать.

+0

ну, я думаю, самым быстрым, он имел в виду, что быстрее писать, а не быстрее выполнять. – Brann

Смежные вопросы