Предположим, у меня есть один класс «Пользователь», и он «имеет» свойство типа «Профиль». Как настроить мои сопоставления для создания схемы и создать обе таблицы в базе данных?Как я могу связать 2 класса через NHibernate?
ответ
<many-to-one/>
Если вы спрашиваете о сопоставлении, вы можете использовать соединение, как показано ниже. Примечание: вам, очевидно, нужно добавить дополнительные атрибуты в соответствии с вашим приложением.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="MyNamespace" assembly="MyAssembly" default-lazy="true">
<class name="User" table="User">
<id name="Id" column="user_id" unsaved-value="0">
<generator class="native" />
</id>
<property name="Profile" column="profile" />
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="MyNamespace" assembly="MyAssembly" default-lazy="true">
<class name="Profile" table="Profile">
<id name="Id" column="profile_id" unsaved-value="0">
<generator class="native" />
</id>
<property name="Profile" column="profile" />
</class>
</hibernate-mapping>
Я не мог заставить это работать, но спасибо за помощь. – mkelley33
Как и в сторону, если вы не большой поклонник сценариев до отображения Hibernate (который я не), то у вас есть несколько других вариантов.
Castle ActiveRecord - одна из альтернатив - это слой поверх NHibernate, который (среди прочего) позволяет вам заявлять свои отношения, используя атрибуты ваших классов и свойств.
И еще Fluent NHibernate - это позволяет вам программно настраивать ваши классы и отношения.
Оба являются отличным улучшением по сравнению с написанием вашего картографирования xml вручную!
Спасибо за совет! Я посмотрю на них. – mkelley33
I второй этот. Свободный NHibernate - это путь. –
Куда вы поместите этот тег и зачем? Что делать, если у меня есть профиль дома и бизнес-профиль? – mkelley33
Nevermind мой предыдущий комментарий. Это указывало мне в правильном направлении. Спасибо! – mkelley33