Как я могу связать 2 класса через NHibernate? - PullRequest
2 голосов
/ 03 мая 2009

Допустим, у меня есть один класс «Пользователь», и у него «есть» свойство типа «Профиль». Как я могу настроить свои сопоставления для генерации схемы и создания обеих таблиц в базе данных?

Ответы [ 3 ]

1 голос
/ 03 мая 2009
<many-to-one/>
1 голос
/ 03 мая 2009

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

Замок ActiveRecord является одной альтернативой - это слой поверх NHibernate, который (помимо прочего) позволяет вам объявлять ваши отношения, используя атрибуты ваших классов и свойств.

И Свободный NHibernate - это еще один - он позволяет программно настраивать ваши классы и отношения.

И то, и другое значительно лучше написания xml-карт вручную!

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

Если вы спрашиваете о сопоставлении, вы можете использовать объединение, как показано ниже. примечание: вам, очевидно, нужно добавить некоторые дополнительные атрибуты в соответствии с вашим приложением.

   <?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>
...