Что такое NHibernate?

Как упомянул Basilevs, вам нужно добавить своего пользователя в файл sudoers, чтобы избежать застревания команд sudo в скрипте в ожидании пароля.

В Ubuntu 16 есть более простой способ: просто добавьте пользователя в sudo group, например:

sudo usermod -aG sudo *username*

С этого момента он должен работать как шарм.

Примечание:

Это работает только при условии, что в файле /etc/sudoers есть следующая строка:

%sudo ALL=NOPASSWD: ALL

( такая строка дает привилегии sudo без пароля на уровне группы, в данном случае группе sudo)

(если эта строка отсутствует и вы хотите добавить ее, убедитесь, что вы используете visudo)

43
задан Community 23 May 2017 в 12:01
поделиться

5 ответов

NHibernate - это ORM или объектно-реляционный преобразователь. В той же строке, что и LINQ to SQL, Entity Framework, LLBLGen и другие, инструменты ORM устраняют большую часть необходимости писать хранимые процедуры для обработки общего доступа к данным (CRUD) для ваших бизнес-объектов. Инструменты ORM требуют, чтобы вы создали (вручную или с помощью визуального дизайнера ... в зависимости от того, какой вы выберете) спецификацию сопоставления, которая отслеживает, какие свойства ваших объектов сопоставляются с какими столбцами ваших таблиц и / или представлений в вашей базе данных. Когда вам нужно получить объекты, инструмент ORM генерирует для вас соответствующий SQL и отправляет его в базу данных. Когда придет время обновить ваши объекты, ORM не только создаст SQL для вставки, обновления и удаления для вас ... он также будет пакетировать эти команды, чтобы одно соединение и пакет команд отправлялись в базу данных и выполняет все в транзакции. Инструменты ORM также могут повысить эффективность ваших запросов, позволяя вам выбирать целые графы объектов за один раз, генерируя наиболее эффективный SQL для задачи.

С инструментами ORM вам по-прежнему нужно запрашивать, однако вы используете либо базовые методы в контексте ORM или объекта сеанса, либо пользовательский язык запросов для этого ORM. В наши дни большинство ORM, включая NHibernate, также предоставляют поддержку LINQ, что позволяет вам использовать стандартный синтаксис LINQ для запроса вашей объектной модели, которая, в свою очередь, транслируется для вас в запросы SQL к вашей базе данных.

Преимущество OR mappers заключается в чтобы вы централизовали почти ВСЕ свой код в своем домене, а не разделяли его между доменом и хранимыми процессами. Вы уменьшаете нагрузку на хранимые процедуры в своей базе данных, уменьшая барьер для рефакторинга базы данных, если в этом возникнет необходимость, обеспечивая большую гибкость бизнеса не только в вашем домене, но и в схеме базы данных. Поскольку вам не нужно писать SQL, особенно если вы используете LINQ, вы часто можете создать более эффективное приложение с меньшими усилиями и более низкими затратами на долгосрочное обслуживание.

Помимо неизбежной войны с администраторами баз данных (если они у вас есть), операторы OR mapper могут принести значительную пользу таблице, которая может сократить усилия по внедрению , улучшить ремонтопригодность и повысить гибкость бизнеса.

Надеюсь, что это ответ на вопрос. ;)

82
ответ дан 26 November 2019 в 22:44
поделиться

Хорошее введение и руководство можно найти здесь Summer of NHibernate Screencasts .

В каждом видео он дает введение в тему nHibernate, а затем углубляется в некоторый код, объясняя, как делать разные вещи. Я нашел это очень полезным.

7
ответ дан 26 November 2019 в 22:44
поделиться

nhibernate - это инструмент ORM

dimecast имеет несколько видеороликов , с которых вы можете начать

Вы можете найти дополнительную информацию здесь

И даже подробнее в Google :)

4
ответ дан 26 November 2019 в 22:44
поделиться

У Мэннинга есть неплохая книга: NHibernate в действии

Книга написана на NHibernate версии 1.2, но большая часть ее применима к последней версии.

3
ответ дан 26 November 2019 в 22:44
поделиться

NHibernate - это инструмент ORM (Object-Relational Mapper). Он создает объектно-ориентированную модель на основе схемы вашей базы данных.

Из https://www.hibernate.org/343.html

Ключевые особенности NHibernate:

  • Модель естественного программирования - NHibernate поддерживает естественную идиому OO; наследование, полиморфизм, композиция и структура коллекций .NET, включая общие коллекции.

  • Собственный .NET - API NHibernate использует соглашения и идиомы .NET.

  • Поддержка детализированных объектных моделей - богатый разнообразие сопоставлений для коллекций и зависимых объектов

  • Отсутствие улучшения байт-кода во время сборки - нет дополнительных этапов генерации кода или обработки байт-кода в вашей процедуре сборки

  • Параметры запроса - NHibernate обращается к обеим сторонам проблема; не только как загрузить объекты в базу данных, но и как получить их снова

  • Custom SQL - укажите точный SQL, который NHibernate должен использовать для сохранения ваших объектов. Хранимые процедуры поддерживаются в Microsoft SQL Server.

  • Поддержка «разговоров» - NHibernate поддерживает долговременные контексты персистентности, отсоединение / повторное присоединение объектов и автоматически заботится об оптимистической блокировке

  • Свободный / открытый исходный код - NHibernate находится под лицензией LGPL (Ограниченная публичная лицензия GNU)

1
ответ дан 26 November 2019 в 22:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: