什么是流利的冬眠?

lea*_*ing 6 nhibernate

什么是fuentHibernate?为什么用它?Hibernate和Fluent Hibernate有什么区别?

reb*_*ard 14

流畅的NHibernate提供了NHibernate标准XML映射文件的替代方案.Fluent NHibernate不是编写XML文档(.hbm.xml文件),而是允许您在强类型C#代码中编写映射.这允许轻松重构,提高可读性和更简洁的代码.

传统的HBM XML映射

<?xml version="1.0" encoding="utf-8" ?>  
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"  
  namespace="QuickStart" assembly="QuickStart">  

  <class name="Cat" table="Cat">  
    <id name="Id">  
      <generator class="identity" />  
    </id>  

    <property name="Name">  
      <column name="Name" length="16" not-null="true" />  
    </property>  
    <property name="Sex" />  
    <many-to-one name="Mate" />  
    <bag name="Kittens">  
      <key column="mother_id" />  
        <one-to-many class="Cat" />  
      </bag>  
  </class>  
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)

流利的NHibernate相当于

public class CatMap : ClassMap<Cat>
{
  public CatMap()
  {
    Id(x => x.Id);
    Map(x => x.Name)
      .Length(16)
      .Not.Nullable();
    Map(x => x.Sex);
    References(x => x.Mate);
    HasMany(x => x.Kittens);
  }
}
Run Code Online (Sandbox Code Playgroud)