关于Fluent NHibernate(官网下载 http://fluentnhibernate.org/
Fluent NHibernate能够取代标准的XML映射文件(.hbm.xml files)。和传统的XML文件相比,Fluent NHibernate能够让你用强类型的C#代码来书写。因此,这样更容易重构,阅读,而且语句更加的精炼。
同时Fluent NHibernate还提供了其他的工具:
1、自动映射-根据您设计的实体自动推断出映射文件
2、持久化具体测试-能够不用写任何增删改语句就可以反复测试实体类
3、应用程序配置-通过Fluent NHibernate的API可以进行应用程序配置
4、数据库配置-能够用C#代码配置数据库
为什么取代HBM.XML映射文件
1、编译器不会鉴定XML文件
2、XML文件是冗余的
3、NHibernate的HBM映射文件必须重复的指明相同的规则,比如string属性必须不为空
传统的HBM映射文件
<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> 20
</hibernate-mapping>
Fluent 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);
}
}