Существуют ли какие-либо ярлыки для моделирования облегченных версий моих классов сопоставленных моделей NHibernate? - PullRequest
0 голосов
/ 01 февраля 2011

У меня есть класс модели со многими свойствами, который сопоставляется с базой данных с помощью NHibernate.

Если я хочу создать более легкую версию того же класса, которая используется только для извлечения и обновления одного изЕсть ли какие-либо ярлыки, которые предоставляет NHibernate, или мне просто нужно создать новый класс с новым файлом сопоставления NHibernate только для одного интересующего меня свойства?

Причина, по которой я хочу сделать это дляПроизводительность базы данных, я не хочу получать 10 частей данных каждый раз, когда я знаю, что я собираюсь обновить только один конкретный столбец.

Ответы [ 4 ]

2 голосов
/ 01 февраля 2011

Использовать HQL:

session.CreateQuery("update TheEntity set TheProp = :newValue where id = :id")
       .SetParameter("newValue", theValue)
       .SetParameter("id", id)
       .ExecuteUpdate();

Нет необходимости в взломах.

1 голос
/ 01 февраля 2011

Производительность при заполнении полного объекта вместо одного свойства (почти во всех случаях) незначительна или отсутствует.Не беспокойся об этом.

1 голос
/ 01 февраля 2011

Для этого нет ярлыков. Вы должны сопоставить отдельный класс с его собственным отображением. Но вы можете положить тележку перед лошадью. NHibernate имеет множество встроенных настроек производительности, не в последнюю очередь это кэширование 1-го и 2-го уровня, которое смягчает большую часть проблемы, которую вы пытаетесь решить. Предполагая, что вы используете функции отложенной загрузки, обновление одного свойства объекта является довольно дешевой транзакцией в NHibernate.

0 голосов
/ 07 марта 2011

Спасибо всем, в конце концов, мы пошли на создание урезанных версий наших классов моделей, и наши базы данных удовлетворены.

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