连贯 NHibernate 正式发布 1.0 候选版

  • 2009-08-23
  • 本文字数:1094 字

    阅读完需:约 4 分钟

连贯 NHibernate 项目的创始人 James Gregory宣布项目已经到达了另一个里程碑——1.0 版本,当前已发布候选版本。

发布说明中提到在映射方面的多项特性和改进:

  • 简洁的方法名——清除了方法名中的多余信息,比如:WithLengthOf现在只剩下Length;ColumnName 改成 Column,WithTableName 变成 Table 等等
  • 删除 SetAttribute——在项目不支持所需属性时,SetAttribute 是程序员使用连贯 NHibernate 来解决问题的权宜之计。我们在连贯接口的主要属性支持方面已有很大的改善,所以你们无需该属性。如果我们仍遗漏你所需要的任何属性,请通知我们(最好给我们发个补丁程序)
  • 单独的子类映射——子类应当与其父类映射分别定义。使用 SubclassMap代替 ClassMap。如果最顶层映射(ClassMap)包含 DiscriminateSubclassesOnColumn 调用,该子类则会以每个类分层结构一张表的方式映射。查看子类集获取更多信息。
  • 重命名静态入口点——AutoPersistenceModel.MapEntitiesFromAssemblyOf过于冗长,重新命名为 AutoMap.AssemblyOf
  • 组件——在自动映射方面完善对组件的支持。运作方式不变,现在还支持所有集合和对象。查看组件获取更多信息。
  • 针对所有类型的 ****IgnoreProperty——我们现在可以使用 IgnoreProperty 来支持多种类型,来代替每个实体类型。查看忽略属性获取更多信息。

在约定方面,我们发现:

  • 首先应用——它们在你显示设置 ClassMap 之前使用。这意味着不会意外重写你的映射
  • 默认应用——过去常约定使用 Accept 方法,大多数人只让它返回 true,这表示可应用于所有事物,或检查在 ClassMap 中是否已经设定某个值。考虑一下前面的变化,这使得 Accept 变得多余。约定可应用于所有事物。如果你不想那样,可用 IClassAcceptance 接口来添加这种行为
  • 可接受标准——在需要定义 Accept 的时候,有新的标准 API 以更一致的方式对它进行定义。查看可接受标准获取更多信息
  • ForeignKeyConvention——提供连续跨越整个映射的用于设定外键名称的基类。查看 _ ForeignKeyConvention _ 获取更多信息
  • ManyToManyTableNameConvention——用于设定多对多表名的(默认)基类。它比以前更加智能,无需重写显示设置并支持双向关联。查看 _ ManyToManyTableNameConvention _ 获取更多信息

Gregory 希望该项目不会长期停留在候选版阶段,随后会对其进行大量的测试。

连贯 NHibernate 通过 C#代码提供连贯映射来使用 XML。它也提供自动映射,该映射使用直接从实体创建映射的机制。可以从 InfoQ/ 连贯 NHibernate 获取连贯 NHibernate 的快速入门资料。更详细的资料可从连贯 NHibernate Wiki 页获取。下载页包括了源代码和可执行文件。

查看英文原文: Fluent NHibernate Has Been Released as 1.0 RC