Я знаю, что этот вопрос может привести к субъективному ответу, но я бы хотел узнать мнение кого-то другого.
Некоторый фон
В настоящее время у меня есть класс, который отображает свойство частной строки в столбец геометрии в таблице базы данных PostgreSQL (PostGIS) вместе с открытой строкой для WKT. WKT используется PostGIS для автоматического обновления столбца геометрии с помощью триггера. Поскольку я не хочу включать какие-либо пространственные привязки в мою модель предметной области, все запросы выполняются с использованием строк WKT и пользовательского пространственного критерия, который оборачивает WKT в пространственную функцию PostGIS и запрашивает ссылку на столбец свойства частной геометрии. Все это работает как положено.
Вопрос
Так как мне нужна ссылка на столбец, мне также нужно свойство в моей доменной модели, чтобы NHibernate соответствовал, поэтому мне было интересно, каким будет лучшее решение для NHibernate, чтобы никогда не выбирал это свойство.
Мое текущее решение выглядит следующим образом с Fluent NHibernate:
Map(Reveal.Member<LocationReference>("Geometry"), "geometry")
.Generated.Always()
.ReadOnly()
.LazyLoad();
Это делает трюк, и когда я выбираю сущность, я не получу свойство, если я не загружу его вручную (что невозможно через лямбда-расширения). К сожалению, я все еще смогу выполнить Criteria или HQL-запрос для этого свойства.
Так есть ли для меня какие-либо способы сделать что-либо, что не дает NHibernate возможность когда-либо включать столбец в выбор? Или приведенное выше решение является единственным способом, по крайней мере, игнорировать столбец при выборе с помощью Query<>
или QueryOver<>
?