Получить значение свойства любой сущности в NHibernate в общем виде - PullRequest
1 голос
/ 07 июля 2010

Мне нужно создать такой метод:

object GetPropertyValue(object entity, string databaseColumnName, int index);

, который будет принимать любую сущность, имя столбца, которое представляется как свойство в классе сущности, и необязательный индекс, который используется, если столбец БД находится внутри свойства коллекции по какому-либо индексу.

Например:

Сущность поля имеет свойство - скважины, то есть набор сущностей скважин. и мне нужно получить имя второй скважины из коллекции Уэллса. Дело в том, что я ничего не знаю о сущности поля, у меня есть только интерфейс - IEntity, и я знаю, что это объект поля (не экземпляр поля, а поле бизнес-объекта, распознаваемое конечным пользователем).

Поэтому я вызываю GetPropertyValue (IEntity, "WELL_NAME", 1), чтобы получить необходимое значение.

С отражением я могу получить экземпляр Field, просмотреть все его свойства, свойства отношений и найти мое свойство WellName, после чего я могу получить свойство Wells и вызвать Field.Wells [1] .WellName - все через отражение .... Подход отстой :(

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

PS: мне нужно использовать этот метод, потому что нам приходится иметь дело с очень старой унаследованной моделью домена через тот же унаследованный интерфейс: (

Спасибо, Алекс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...