NHibernate - Базовая ORM
В этой главе мы рассмотрим некоторые basic mappingи вы знаете, что из предыдущей главы у нас есть таблица базы данных, а также определение класса C #. Теперь нам нужно сопоставление, которое объясняет, как переводить с C # в базу данных и обратно.
Итак, давайте продолжим и добавим новый XML-файл, щелкнув правой кнопкой мыши проект в проводнике решений и выбрав Добавить → Новый элемент ...
Войти Student.hbm.xmlв поле имени. Нам нужно указать сборку по умолчанию, которая будетNHibernateDemoAppа также укажите пространство имен по умолчанию. Это просто сокращает многие другие определения типов, которые мы собираемся сделать в этом файле.
Ниже приведена реализация в файле XML -
<?xml version = "1.0" encoding = "utf-8" ?>
<hibernate-mapping xmlns = "urn:nhibernate-mapping-2.2"
assembly = "NHibernateDemoApp" namespace = "NHibernateDemoApp">
<class name = "Student">
<id name = "ID">
<generator class = "native"/>
</id>
<property name = "LastName"/>
<property name = "FirstMidName"/>
</class>
</hibernate-mapping>
Следующее, что нам нужно - определить класс; этот класс будет нашимStudent class. Затем нам нужно сообщить NHibernate имя идентификатора, то есть ID, и я также должен сообщить NHibernate, как сгенерировать идентификаторы, поэтому наш генератор будет иметь тип native.
Генератор собственных типов означает, что в такой базе данных, как SQL Server, он будет использовать столбец идентификаторов, тип идентификаторов.
Следующее, что нам нужно сделать, это дать имена свойствам. Итак, добавьте еще два свойства для FirstName и LastName.
Теперь мы читаем эти файлы сопоставления из сборки. Поэтому предпочтительный способ сделать это - иметь этиHBM filesвстроен в вашу сборку. Мы можем сделать это, просто установив свойство.
Теперь щелкните правой кнопкой мыши проект в проводнике решений и выберите «Свойства». Вы увидите значок Build Action field в котором Контент выбран по умолчанию.
Выберите встроенный ресурс из раскрывающегося списка.
Таким образом, этот XML-файл фактически вставляется в NHibernateDemoApp сборка.