Как упомянул Basilevs, вам нужно добавить своего пользователя в файл sudoers
, чтобы избежать застревания команд sudo
в скрипте в ожидании пароля.
В Ubuntu 16 есть более простой способ: просто добавьте пользователя в sudo group
, например:
sudo usermod -aG sudo *username*
С этого момента он должен работать как шарм.
Примечание:
Это работает только при условии, что в файле /etc/sudoers
есть следующая строка:
%sudo ALL=NOPASSWD: ALL
( такая строка дает привилегии sudo без пароля на уровне группы, в данном случае группе sudo
)
(если эта строка отсутствует и вы хотите добавить ее, убедитесь, что вы используете visudo
)
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 могут принести значительную пользу таблице, которая может сократить усилия по внедрению , улучшить ремонтопригодность и повысить гибкость бизнеса.
Надеюсь, что это ответ на вопрос. ;)
Хорошее введение и руководство можно найти здесь Summer of NHibernate Screencasts .
В каждом видео он дает введение в тему nHibernate, а затем углубляется в некоторый код, объясняя, как делать разные вещи. Я нашел это очень полезным.
nhibernate - это инструмент ORM
dimecast имеет несколько видеороликов , с которых вы можете начать
Вы можете найти дополнительную информацию здесь
И даже подробнее в Google :)
У Мэннинга есть неплохая книга: NHibernate в действии
Книга написана на NHibernate версии 1.2, но большая часть ее применима к последней версии.
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)