2010-08-05 9 views

risposta

13

Fluent NHibernate offre un'alternativa ai file di mapping XML standard di NHibernate. Anziché scrivere documenti XML (file .hbm.xml), Fluent NHibernate consente di scrivere mappature in codice C# fortemente tipizzato. Ciò consente un facile refactoring, una migliore leggibilità e un codice più conciso.

tradizionale HBM mapping 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> 

Fluent NHibernate equivalente

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); 
    } 
} 
Problemi correlati