NHibernate Информация - PullRequest
       4

NHibernate Информация

0 голосов
/ 14 мая 2009

Я новичок в NHibernate. Может кто-нибудь объяснить мне, как он работает с большим набором данных?

Если у меня есть 100 ГБ данных, я хочу получить их через Nhibernate, я думаю, что это возможно с ISession. Если я буду использовать ISession, будет ли он храниться в памяти? Если он будет храниться в памяти, если что-то будет сделано с базой данных, что произойдет?

Эти сомнения могут привести меня в замешательство. Кто-нибудь может мне посоветовать?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 15 мая 2009

Я не знаю, что вы хотите сделать с данными, поэтому я не могу дать вам хороший ответ. Когда вы говорите о 100 ГБ, я предполагаю, что вы хотите перенести данные в другую базу данных или носитель. Почему бы вам не взглянуть на какой-нибудь инструмент ETL ?

0 голосов
/ 14 мая 2009

Сессия NHibernate не только реализует шаблон «Единица работы», но также реализует шаблон «Карта идентичности».

То есть, когда вы впервые извлекаете сущность из хранилища данных в сеансе, NHibernate извлечет эту сущность из БД.

Если вы хотите снова получить ту же сущность , используя ту же сессию , тогда NHibernate не будет извлекать ее из БД, но вернет ссылку, которую она уже извлекла. Конечно, это верно только в том случае, если вы используете один и тот же экземпляр Session при извлечении этой же сущности во второй раз.

Когда вы вносите изменения в сущность, и в то же время кто-то другой меняет эту же сущность и сохраняет эти изменения в БД, тогда, конечно, эти изменения не будут видны, поскольку вы не можете ожидать, что NHIbernate отслеживает всей базы данных, и проверяет, изменил ли кто-либо еще (и сохранил) объект, который у вас есть в памяти.

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

Но, мне интересно ... Вы уверены, что NHibernate является хорошим решением вашей проблемы? Какое приложение вы собираетесь создавать?

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