连贯NHibernate正式发布1.0候选版

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

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

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

在约定方面,我们发现:

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

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

连贯NHibernate通过C#代码提供连贯映射来使用XML。它也提供自动映射,该映射使用直接从实体创建映射的机制

共有0个回答