要映射的模型样本

NHibernate 使用类映射到表或视图。创建 Plain Old CLR Object (POCO,有时称为普通的普通 CLR 对象)是持久化类的一种很好的做法。甲 POCO 具有通过标准的 .NET 属性机制可访问其数据,屏蔽从公开显示接口的内部表示。

namespace Project
{
    public class Customer
    {
        public virtual string Id { get; set; }

        public virtual string Name { get; set; }

        public virtual char Sex { get; set; }

        public virtual float Weight { get; set;}

        public virtual bool Active { get; set;}

        public virtual DateTime Birthday { get; set;}

        public Customer()
        {
        }
    }
}

NHibernate 的属性类型使用不受限制:可以映射所有 .NET 类型和基元(如 string,char 和 DateTime),包括 System.CollectionsSystem.Collections.Generics 命名空间中的类。你还可以映射实体之间的关系,具有引用另一个实体类型的属性。你可以将它们映射为值,值集合或与其他实体的关联。这里名为 Id 的属性是一个特殊属性,表示该类的数据库标识符(主键),强烈建议像 Cat 这样的实体使用。NHibernate 只能在内部使用标识符,而不必在类中声明它们,但我们会失去应用程序体系结构的一些灵活性。

不必为持久化类实现特殊接口,也不必从特殊的根持久化类继承子类。NHibernate 也不使用任何构建时处理,例如 IL 操作; 它完全依赖于 .NET 反射和运行时类增强。因此,在 NHibernate 的 POCO 类中没有任何依赖,我们可以将它映射到数据库表或视图。

为了使上述运行时类增强工作,NHibernate 要求将实体类的所有公共属性声明为 virtual。实体类必须有一个无参数构造函数(protectedpublic),用于 NHibernate 创建对象。