nhibernate 流利的NHibernate映射
示例
该FluentNHibernate是一个库,以帮助您在使用C#代码,而不是XML映射的实体映射。FluentNHibernate使用,fluentpattern并且它基于约定来创建映射,它为VisualStudio工具(例如intellisense)提供了强大的功能,可改善您映射实体的方式。
在项目上添加来自Nuget的FluentNHibernate的引用,并添加一个类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方法用于映射primerykey列。该Map方法用于映射其他列。