要映射的模型样本
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.Collections
和 System.Collections.Generics
命名空间中的类。你还可以映射实体之间的关系,具有引用另一个实体类型的属性。你可以将它们映射为值,值集合或与其他实体的关联。这里名为 Id
的属性是一个特殊属性,表示该类的数据库标识符(主键),强烈建议像 Cat 这样的实体使用。NHibernate 只能在内部使用标识符,而不必在类中声明它们,但我们会失去应用程序体系结构的一些灵活性。
不必为持久化类实现特殊接口,也不必从特殊的根持久化类继承子类。NHibernate 也不使用任何构建时处理,例如 IL 操作; 它完全依赖于 .NET 反射和运行时类增强。因此,在 NHibernate 的 POCO 类中没有任何依赖,我们可以将它映射到数据库表或视图。
为了使上述运行时类增强工作,NHibernate 要求将实体类的所有公共属性声明为 virtual
。实体类必须有一个无参数构造函数(protected
或 public
),用于 NHibernate 创建对象。