该Fluent NHibernate是一个库,以帮助您在使用C#代码,而不是XML映射的实体映射。Fluent NHibernate使用,fluent pattern并且它基于约定来创建映射,它为Visual Studio工具(例如intellisense)提供了强大的功能,可改善您映射实体的方式。
在项目上添加来自Nuget的Fluent NHibernate的引用,并添加一个类CustomerMap.cs:
namespace Project.Mappings
{
public class CustomerMap : ClassMap<Customer>
{
public CustomerMap()
{
Table("CUSTOMERS");
Id(x => x.Id).Column("Customer_Id").GeneratedBy.Native();
//在指定最大长度和设置的同时映射属性
//它不能为空。将导致后备栏具有
//这些特征,但这不会在模型中强制执行!
Map(x => x.Name)
.Length(16)
.Not.Nullable();
Map(x => x.Sex);
Map(x => x.Weight);
Map(x => x.Active);
//在指定数据库中列的名称时映射属性
Map(x => x.Birthday, "BIRTHDAY");
//映射多对一关系
References(x => x.Company);
//映射一对多关系,同时定义
//列用作外部表中的键。
HasMany(x => x.Orders).KeyColumn("CustomerPk");
}
}
}在CustomerMap从类inhiritsClassMap<T>是用于映射的基类,并包含所有必要创建您的映射方法T实体。该方法Table定义您要映射的表名。该Id方法用于映射primery key列。该Map方法用于映射其他列。