如何通过NHibernate关联2个类?

时间:2009-05-03 00:21:46

标签: c# nhibernate nhibernate-mapping

假设我有一个类“User”,它“具有”类型为“Profile”的属性。如何配置映射以生成模式并在数据库中创建两个表?

3 个答案:

答案 0 :(得分:1)

<many-to-one/>

答案 1 :(得分:1)

顺便说一句,如果你不是编写hibernate映射脚本的忠实粉丝(我不是),那么你还有其他一些选择。

Castle ActiveRecord是另一种选择 - 它是NHibernate之上的一个层,除其他外,它允许您使用类和属性上的属性声明关系。

Fluent NHibernate是另一个 - 它允许您以编程方式设置类和关系。

两者都比手工编写映射xml有了很大的改进!

答案 2 :(得分:0)

如果您询问映射,可以使用如下所示的连接。注意:您显然必须添加一些其他属性以适合您的应用。

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