nhibernate 流利的NHibernate映射

示例

该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方法用于映射其他列。